
絶対パス名で印刷したいのですが、ls
どうすればいいですか?
find / -type d -mount -exec ls -ls {} \;
ls
ディレクトリ内の相対ファイル名のみを印刷します。
答え1
POSIX的に:
find / -xdev -type d -exec sh -c 'for d; do ls -lsd "$d"/*; done' sh {} +
-xdev
効果は同じです-mount
が、移植性に優れています。
空のディレクトリでは失敗します。
答え2
ls
これは、ディレクトリが引数として提供されるときの一般的な動作です。したがって、ディレクトリを具体的に扱うことを避けるべきですls
。
ls
代わりに-type f
ファイルパスをに渡す必要があります-type d
。ディレクトリを渡すには(いいえ)
-type f
オプションが必要です。-d
ls
答え3
実行するコマンドを次に変更しますecho
。
find / -type d -mount -exec echo {} \;