-exec ls -s
是我的程序的一部分,我只是想知道它是什么-s {}
意思。这是我的整个程序,我知道它的作用:
find $root -type f -exec ls -s {} \; | sort -n | tail -n 15 >> ~/prog.log
答案1
-exec
是一个选项,find
它使用找到的文件名运行命令。语法如下-exec
:
-exec command {} [;|+]
被文件的名称替换(如果使用,则{}
每次执行命令替换一个文件;如果使用,则替换多个文件)。;
+
ls -s
将文件的大小与文件名一起打印。
这可以完全在 中完成find
,使用以下-printf
选项:
find "$root" -type f -printf "%s %p\n" | ...
答案2
此命令find
列出目录中的文件$root
,然后exec
对每个文件执行命令。命令为ls -s filename
,{} 是命令中的占位符,由在 $root 中找到的每个文件的名称替换。