使用find, xargs来排序文件夹中文件大小
时间: 2024-12-12 18:22:03 浏览: 0
shell 使用find和xargs
在Linux中,你可以使用`find`命令配合`xargs`命令来查找特定目录下所有的文件,然后通过`du`命令计算每个文件的大小,并将结果传递给`sort`命令进行排序。以下是一个基本流程:
1. 首先,使用`find`命令找到指定目录及其子目录内的所有文件。例如,假设你想对当前目录下的所有非隐藏文件进行操作:
```bash
find . -type f ! -name ".*" -print0
```
这里`-type f`表示查找文件,`! -name ".*"`排除隐含文件。
2. 然后使用`xargs`和`du`命令计算文件大小,`-z`标志告诉`xargs`输入是零终止的行列表,`-b`意味着以字节为单位显示:
```bash
find . -type f ! -name ".*" -print0 | xargs -0 du -b
```
3. 最后,`sort`命令来排序文件大小。如果想按降序排列(从大到小),可以在`sort`后面加`-n`(数字比较)和`-r`(逆序):
```bash
find . -type f ! -name ".*" -print0 | xargs -0 du -b | sort -bnr
```
注意,这个过程可能会生成大量的输出,如果目录很大或文件很多,需要谨慎使用。
阅读全文