it-swarm-ja.tech

ディレクトリの後ろにスラッシュを表示するスラッシュを作成しますか?

Findコマンドでディレクトリの後にスラッシュを表示するにはどうすればよいですか?たとえば、dirdirではなくdir/として表示したいとします。 find . -printを使用しています

20
Steven

ポータブル:

_find . -type d -exec sh -c 'printf "%s/\n" "$0"' {} \; -or -print
_

ディレクトリとファイルを別々に一覧表示する場合は、次のように入力します(並べ替えによって出力をマージできます)。

_{ find . -type d -print | sed 's!$!/!'; find . \! -type d; } | sort
_

GNU検索、 Shawn J. Goffの回答 を参照)。

端末に出力していなくても、印刷不可能な文字が壊れる危険性がある場合は、 ddeimekeの回答 を参照してください。

Zshの場合:print -rl -- **/*(DM)(ドットファイルを含めるにはD、ディレクトリの後に_/_を追加するにはM

find . \( -type d -printf "%p/\n" , -type f -print \)

これは、printfコマンドを使用して、ディレクトリ名と残りの標準印刷をフォーマットします。

15
Shawn J. Goff

多分

find . -print0 | xargs -0 ls -Fd

オプションでもあります。

Solaris manページから:

-F末尾にスラッシュ(/)、末尾に大なり記号(>)が付いたドア、末尾にアスタリスク(*)が付いた実行可能ファイル、末尾に縦線(|)が付いたFIFO、末尾に "が付いたシンボリックリンクat "記号(@)、および末尾に等号記号(=)が付いたAF_UNIXアドレスファミリーソケット。オペランドとして指定されたシンボリックリンクをたどります。

8
ddeimeke