以下是什么意思?
find myDirectory -name myFile -exec ls \-ln {} \;
我看了here,但并不完全明白
-exec command True if the executed command returns a zero value as exit status. The end of command must be punctuated by an escaped semicolon. A command argument {} is replaced by the current path name.
这部分-exec ls \-ln {} \;
对我来说并不清楚。
此致
答案 0 :(得分:5)
这意味着:查找当前目录及其所有子目录中名称为myFile
的所有文件,并找到每个找到的文件,并使用文件名运行ls -ln
。
例如:
$ mkdir a
$ touch myFile a/myFile
$ find -name myFile -exec ls -ln {} \;
-rw-r--r-- 1 1000 1000 0 Jun 17 13:07 ./myFile
-rw-r--r-- 1 1000 1000 0 Jun 17 13:07 ./a/myFile
在这种情况下,find
将运行ls
两次:
ls -ln ./myFile
ls -ln ./a/myFile
每次将{}
扩展为找到的文件的全名。
另外我必须补充一点,在这种情况下你需要在-ln之前使用反斜杠。是的,你可以使用它,但这里绝对没用。
答案 1 :(得分:3)
find myDirectory -name myFile -exec ls \-ln {} \;
它在目录myFile
中找到myDirectory
,找到所有文件然后执行文件列表命令,即linix ls
中的命令选项-l
和找到的文件-n
。
因此,最终您将获得所有myFiles
并附带ls
命令结果。