在linux中查找命令

时间:2012-06-17 11:05:22

标签: linux ubuntu find

以下是什么意思?

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 {} \;对我来说并不清楚。

此致

2 个答案:

答案 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命令结果。