0

次の意味は何ですか?

find myDirectory -name myFile -exec ls \-ln {} \; 

ここ見てきたけどよくわからなかった

-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 {} \;はよくわかりません。

よろしく

4

2 に答える 2

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

この場合、2 回find実行されます。ls

ls -ln ./myFile
ls -ln ./a/myFile

{}見つかったファイルのフルネームとして展開されるたびに。

また、この場合、-ln の前にバックスラッシュが必要であることを追加する必要があります。はい、使用できますが、ここではまったく役に立ちません。

于 2012-06-17T11:09:51.437 に答える
3
find myDirectory -name myFile -exec ls \-ln {} \;

myFileディレクトリ内を検索すると表示され、すべてのファイルが見つかったら、コマンド オプション を使用myDirectoryして linix で見つかったファイルに対してファイル リスト コマンドを実行します。ls-l-n

したがって、最終的には、コマンド結果にmyFiles付随するすべてを取得します。ls

于 2012-06-17T11:09:30.753 に答える