Dav*_*ave 3 macos bash search file file-listing
我遇到了以下命令,几乎可以满足我的需求:
find . -type f -print0 | xargs -0 ls -l | sort -k5,5rn > ~/files.txt
现在,我不知道这意味着什么(会喜欢解释,但不是那么重要).
我需要添加的一件事是不要打扰特定的文件夹(即我有一个包含成千上万个Word文档的Documents文件夹,这使得这个命令需要很长时间).
任何人都可以建议添加上面的命令,找到忽略给定的文件夹?
排除匹配路径*/Documents/*从find:
find . -type f ! -path "*/Documents/*" -print 0 | ...
Run Code Online (Sandbox Code Playgroud)
既然你要求解释......
find . -type f -print0
Run Code Online (Sandbox Code Playgroud)
这是find实用程序,它通过文件系统找到符合您想要的内容.在.本质上意味着它会尝试找到任何东西,但因为你指定-type f它只能找到"常规文件". -print0,正如您可能已经猜到的那样,只需打印标准输出的完整路径(对管道非常有用).它在每一行的末尾使用一个空字符(相反-print,这将在一瞬间相关).
xargs -0 ls -l
Run Code Online (Sandbox Code Playgroud)
xargs从标准输入中获取事物列表,然后使用作为参数传递给它的内容执行给定命令("实用程序").在这种情况下,实用程序是命令,ls -l因此xargs从中获取结果find并对其执行ls -l,为您提供长的完整路径; 这基本上只是一种将文件列表转换为包含大小等信息的文件列表的方法.该-0选项允许xargs将空字符解释为行之间的分隔符,它存在(几乎?)仅允许它使用-print0上面的选项.
sort -k5,5rn > ~/files.txt
Run Code Online (Sandbox Code Playgroud)
sort非常酷.它排序的东西. -k告诉它要排序的列,在本例中为第5列(仅列5).该rn位表示使用数字排序并反转顺序.底部的默认值最大,因此最先放大.如果使用单位后缀(B,K,M,G等),数字排序可能会令人困惑ls -lh.
| 归档时间: |
|
| 查看次数: |
5520 次 |
| 最近记录: |