0

私はそれがばかげた質問であることを知っています:どうすればいくつかのディレクトリ(ファイル+ディレクトリ内)をlsし、次のようなものを返すことができますか:ファイルの場合は0、ディレクトリの場合は1、simlinkの場合は2

<name_dir>,1
<name_dir>,1
<name_file>,0
<name_file>,0
<name_file>,0
<name_file>,0

結果をssh経由で渡す必要があり、トラフィックをできるだけ少なくすると思います。たぶん、これは最も賢明なオプションではないでしょうか? ls または find -printf

4

2 に答える 2

1

ls -F末尾のスラッシュでディレクトリをマークします。次にsed、スラッシュを「,1」に変換し、他のマーク (シンボリックリンクなど) を取り除くか、選択した接尾辞に置き換えます。最後に、「,1」(または追加した他の接尾辞)で終わらないものすべてに「,0」を追加します

これにより、ディレクトリの接尾辞に「,1」が追加され、その他すべてのディレクトリには「,0」が追加されます

ls -F | sed '
   s/[\*\@\|]$//;
   s/=>$//;
   s/\/$/,1/;
   /,1$/! s/$/,0/'
于 2013-05-01T12:38:02.100 に答える