「ls」と「find」を使用してフルパス名を印刷します。

「ls」と「find」を使用してフルパス名を印刷します。

絶対パス名で印刷したいのですが、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

  1. ls代わりに-type fファイルパスをに渡す必要があります-type d

  2. ディレクトリを渡すには(いいえ)-type fオプションが必要です。-dls

答え3

実行するコマンドを次に変更しますecho

find / -type d -mount -exec echo {} \;

関連情報