2013-05-01 62 views
0

我知道這是一個愚蠢的問題:我怎麼能LS某些目錄(文件+目錄內),並返回類似:0的文件,1目錄,2 simlinkLinux的自定義列表目錄

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

我需要通過ssh傳遞結果,我認爲儘可能小的流量。 也許這不是最聰明的選擇,任何想法? ls或find -printf

+1

我將會用C編寫自定義LS程序,使用stat系統調用。看[man stat](http://linux.die.net/man/2/stat) – user2035147 2013-05-01 12:21:57

回答

1

ls -F用尾部斜槓標記目錄。然後使用sed將斜槓轉換爲「,1」並去除其他標記(用於符號鏈接等)或將其替換爲您選擇的後綴。最後的「0" ,附加到一切不結束」 1" (或您添加的任何其他後綴)

此後綴使用目錄「 1" 以及其他一切與」 0"

ls -F | sed ' 
    s/[\*\@\|]$//; 
    s/=>$//; 
    s/\/$/,1/; 
    /,1$/! s/$/,0/' 
0

另一個建議:

#!/bin/sh 
for f in `ls -1 --group-directories-first`; do 
    if [ -d $f ]; then echo "$f,1"; 
    elif [ -L $f ]; then echo "$f,2"; 
    else echo "$f,0"; fi 
done