findコマンドにディレクトリの後にスラッシュを表示させるにはどうすればよいですか?たとえば、代わりにdir
表示したいと思います。私はそれを使用していますdir/
dir
find . -print
答え1
find . \( -type d -printf "%p/\n" , ! -type d -print \)
これはprintf
、コマンドを使用して標準印刷用のディレクトリ名と残りの名前の形式を指定します。
答え2
持ち運べる:
find . -type d -exec sh -c 'printf "%s/\n" "$0"' {} \; -or -print
ディレクトリとファイルを別々にリストしたい場合(並べ替えて出力をマージできます):
{ find . -type d -print | sed 's!$!/!'; find . \! -type d; } | sort
GNU 検索を使用して以下をご覧ください。Sean J. Goffの答え。
端末に出力しなくても印刷できない文字が破損する恐れがある場合は、以下を参照してください。Dedymekの答え。
zshから:(ドットファイルprint -rl -- **/*(DM)
を含む、再ディレクトリを追加)D
M
/
答え3
おそらく
find . -print0 | xargs -0 ls -Fd
それもオプションです。
Solarisのマニュアルページから:
-F 末尾スラッシュ (/) を持つディレクトリ、末尾より大きい記号 (>) を持つディレクトリ、末尾アスタリスク (*) を持つ実行可能ファイル、末尾パイプ (|) を持つ FIFO、および末尾 " at 記号リンクを持つ記号リンクを表示します。記号(@)とAF_UNIXは、末尾の等号(=)を持つファミリソケットをアドレス指定します。オペランドと呼ばれるシンボリックリンクに従います。
答え4
末尾/が欲しいけどアスタリスクは欲しくない-printも省略できます。
find . | xargs ls -Fd | sed -e "s/*//"