我知道這是一個愚蠢的問題:我怎麼能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
我知道這是一個愚蠢的問題:我怎麼能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
ls -F
用尾部斜槓標記目錄。然後使用sed
將斜槓轉換爲「,1」並去除其他標記(用於符號鏈接等)或將其替換爲您選擇的後綴。最後的「0" ,附加到一切不結束」 1" (或您添加的任何其他後綴)
此後綴使用目錄「 1" 以及其他一切與」 0"
ls -F | sed '
s/[\*\@\|]$//;
s/=>$//;
s/\/$/,1/;
/,1$/! s/$/,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
我將會用C編寫自定義LS程序,使用stat系統調用。看[man stat](http://linux.die.net/man/2/stat) – user2035147 2013-05-01 12:21:57