2011-09-30 50 views
1

使用1個命令我想獲取所有的文件信息即md5校驗:在一個命令行的"permission","hardlink","owner","group","fsize","month","date","time","filename"如何獲取文件信息,並在Linux

MD5校驗信息。我怎樣才能做到這一點?

目前我得到的第一個1通過運行ls -latr /home/asimon 和2 1的md5sum /home/asimon/filename.sh(它取我的信息僅用於1個文件),而是我要像下面

drwxr-xr-x 2 asimon support 4096 Sep 27 11:59 lib de1d8cd98f00b204e9800998ecf842qw 
-rwxrwxrwx 1 asimon support 924 Sep 27 12:00 run.sh dqtd8cd98f00b204e9800998ecf84a7a 
drwxr-xr-x 6 asimon support 4096 Sep 27 18:13 plugins d41d8cd98f00b204e9800998ecf8427s 
-rw-r--r-- 1 asimon support 2572 Sep 28 10:06 servicesFramework.log d51d8cd98f00b204e9800998ecf8427f 

回答

2

看起來相當笨拙,但在這裏你去: ls -lAtr /home/asimon |grep -v total|awk '{printf($ARGV[1]);printf(" ");system("md5sum $9");}'|tr -d "-"

[編輯] 注意須大寫A在ls命令

[EDIT 2和3] 更新過的命令,在不損害本「 - 「在文件名中的字符:

ls -lAtr /home/asimon|egrep -v "^d|total"|awk '{printf($ARGV[1]);printf(" ");system("md5sum $9");}'|awk '{$11="";print $ARGV[1]}'

+0

這工作:)所以,如果我需要給一個路徑,以便您的一個襯裏可以改變一些東西像這樣''ls -lAtr/home/asimon | grep -v total | awk'{printf($ ARGV [1]); printf(「」); system(「md5sum $ 9」);}'| tr -d「 - 「'? – abi1964

+0

是的,但看看更新後的命令 – racic

+0

衷心感謝:) – abi1964

-1

嘗試所有的信息:LS -latr /家庭/ ASIMON; md5sum/home/asimon/*

分號允許您在一行上執行兩個命令,*將爲該目錄中的所有內容運行md5sum。

+0

我需要的信息在一行'drwxr-XR-X 2 ASIMON支持4096年09月27至11:59的lib de1d8cd98f00b204e9800998ecf842qw' – abi1964

1

之一許多方法是使用一個for環如下:

for ls_entry in `ls`;do [ -f $ls_entry ] && ls_out=`ls -alth $ls_entry` && md5_out=`md5sum $ls_entry|awk '{print $1}'` && echo "$ls_out $md5_out"; done 

希望這有助於!

6

你可以做到這一點非常容易找到:

find . -printf "%m %n %u %g %s %t" -exec md5sum \{\} \; 

取而代之的是printf和選項,你也可以做一個-ls而是將打印的文件名兩次(和的md5sum與分隔的輸出中換行字符)

+0

不錯,它不會以正確的順序打印數據,但確實包括「。 – racic

相關問題