smo*_*uns 7 bash command-line ls
我想ls
根据文件大小过滤命令的输出。任何大于 100KB 的 .jpg 或 .png 文件都应在输出中报告。
我已经能够过滤 .png / .jpg 文件,但我无法丢弃任何小于 100KB 的文件。
这是我目前正在使用的:
ls -lah | grep '.png\|.jpg'
Run Code Online (Sandbox Code Playgroud)
任何想法我怎么能做到这一点?
你可以使用find
:
find . -type f -size +100k | grep '.png\|.jpg'
Run Code Online (Sandbox Code Playgroud)
where+100k
以 KB 为单位指定大小,这意味着只应输出大于此值的文件。find
还有一些其他不错的选项,例如只列出一定时间前创建的文件。有关man find
更多详细信息,请参阅。
上面也可以改写为
find . -type f -size +100k -name "*.png" -o -name "*.jpg"
Run Code Online (Sandbox Code Playgroud)
正如其他人所建议的那样,find
将允许您在指定的大小范围内查找文件。Find
不过,只输出每个文件的路径。此外,无需进一步限定,find
将查找当前目录中以及当前目录下的每个目录中的所有文件。以下仅搜索当前目录并用于ls
显示结果。
find . -maxdepth 1 -size +200 \( -name \*.png -o -name \*.jpg \) -print | xargs ls -ldh
Run Code Online (Sandbox Code Playgroud)
请注意,大小以块为单位,其中一个块通常是 512 字节。
归档时间: |
|
查看次数: |
16570 次 |
最近记录: |