2012-12-04 105 views
1

我想將o/p列爲所有者及其文件名,文件路徑和文件大小。 我使用兩個命令來獲取o/p。任何人都可以建議我如何得到O/P在一個單一的選指令,命令我使用的是:如何在Unix和Linux中的單個命令中管多個命令

ls -l | awk '{print $3, $4 }' > test.txt 

這給了我老闆和目錄列表。

:第二個是:

find . -size +100k -print0 | xargs -0 ls -sd >tets2.txt 

這給我的文件的文件名和大小。

回答

0

排序不明白,你的意思是管他們兩個或做同一行中的每個命令。要做到以後,你可以做

ls -l | awk '{print $3, $4 }' > test.txt ; find . -size +100k -print0 | xargs -0 ls -sd >tets2.txt 
0

第一個命令返回所有者和組,而不是文件名。它只適用於當前目錄。第二個命令也適用於子目錄,但只適用於大文件。兩個不相關的命令很難拼在一起,但如果您的目標是防止對文件調用stat兩次,則可以修改以下Perl腳本以滿足您的需要:

use feature 'say'; 
while (my $file = glob '*') { 
    my @stats = (stat $file)[4,5,7]; 
    say join "\t", $file, 
        (getpwuid $stats[0])[0], 
        (getgrgid $stats[1])[0], 
        $stats[2]; 
}