这在我的程序中是什么意思?-exec ls -s {}

这在我的程序中是什么意思?-exec ls -s {}

-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 中找到的每个文件的名称替换。

相关内容