ディレクトリの後にスラッシュを表示させますか?

ディレクトリの後にスラッシュを表示させますか?

findコマンドにディレクトリの後にスラッシュを表示させるにはどうすればよいですか?たとえば、代わりにdir表示したいと思います。私はそれを使用していますdir/dirfind . -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)を含む、再ディレクトリを追加)DM/

答え3

おそらく

find . -print0 | xargs -0 ls -Fd

それもオプションです。

Solarisのマニュアルページから:

-F 末尾スラッシュ (/) を持つディレクトリ、末尾より大きい記号 (>) を持つディレクトリ、末尾アスタリスク (*) を持つ実行可能ファイル、末尾パイプ (|) を持つ FIFO、および末尾 " at 記号リンクを持つ記号リンクを表示します。記号(@)とAF_UNIXは、末尾の等号(=)を持つファミリソケットをアドレス指定します。オペランドと呼ばれるシンボリックリンクに従います。

答え4

末尾/が欲しいけどアスタリスクは欲しくない-printも省略できます。

find . | xargs ls -Fd | sed -e "s/*//"

関連情報