findコマンドに絶対パスを指定すると、結果が絶対パスで出力されます。したがって、次のように入力すると、Kenディレクトリから次のようになります。
find /home/ken/foo/ -name bar -print
(相対パスの代わりにfind . -name bar -print
)
あなたは得るべきです:
/home/ken/foo/bar
したがって、が必要ls -l
で絶対パスを返すようにする場合は、findコマンドに、見つかったものすべてに対してを実行するように指示するだけls -l
です。
find /home/ken/foo -name bar -exec ls -l {} ;\
注:との間にスペースが{}
あります;
次のようなものが表示されます。
-rw-r--r-- 1 ken admin 181 Jan 27 15:49 /home/ken/foo/bar
ファイルの場所がわからない場合は、いつでも検索場所を変更できます。検索パスが「/」で始まる限り、代わりに絶対パスを取得します。多くの許可拒否エラーが発生する場所(/など)を検索している場合は、実際に検索結果を確認できるように、標準エラーをリダイレクトすることをお勧めします。
find / -name bar -exec ls -l {} ;\ 2> /dev/null
(2>
はBorneシェルとBashシェルの構文ですが、Cシェルでは機能しません。他のシェルでも機能する可能性がありますが、BourneとBashで機能することは確かです)。