linux~大文件相关操作的总结
1.生成指定大小的文件
在当前目录下生成一个50M的文件:
dd if=/dev/zero of=50M.file bs=1M count=50
truncate -s 2G ~/big.log.txt
truncate -s 将文件缩减或扩展至指定大小
- 如果指定文件不存在则创建
- 如果指定文件超出指定大小则超出的数据将丢失
- 如果指定文件小于指定大小则用0 补足
ubuser@ubuser-OptiPlex-7010:~$ echo '123456'>a.txt ubuser@ubuser-OptiPlex-7010:~$ cat a.txt 123456 ubuser@ubuser-OptiPlex-7010:~$ truncate -s 4 a.txt #设置文件大小为4字节 ubuser@ubuser-OptiPlex-7010:~$ cat a.txt #部分文件内容丢失 1234ubuser@ubuser-OptiPlex-7010:~$ ubuser@ubuser-OptiPlex-7010:~$ truncate -s 100k a.txt #将文件size扩大到100k ubuser@ubuser-OptiPlex-7010:~$ cat a.txt #文件内容没发生变化 1234ubuser@ubuser-OptiPlex-7010:~$ ubuser@ubuser-OptiPlex-7010:~$ ls -l a.txt #大小变了 -rw-rw-r-- 1 ubuser ubuser 102400 3月 5 11:04 a.txt ubuser@ubuser-OptiPlex-7010:~$ ubuser@ubuser-OptiPlex-7010:~$ du -sh a.txt #大小没变 4.0K a.txt
2.查找大文件
find . -type f -size +800M #在当前目录下,超过800M大小的文件
find . -type f -size +800M -print0 | xargs -0 ls -l #查找超过800M大小的文件,并显示一些文件属性或信息
find . -type f -size +800M -print0 | xargs -0 du -h #查找超过800M大小文件,并显示查找出来文件的具体大小
find . -type f -size +800M -print0 | xargs -0 du -h | sort -nr #对查找结果按照文件大小做一个排序
find . -size +1k -a -size -3k -exec ls -lh {} \; #查找根目录下文件大小大于1K小于3K的文件,并展示文件的详细信息,默认以字节作为单位。