
我想要這樣的輸出:name
size
和hash
:
myfile.txt 222M 24f4ce42e0bc39ddf7b7e879a
mynewfile.txt 353M a274613df45a94c3c67fe646
為了name
且size
只有我擁有
ll -h | awk '{print $9,$10,$11,$12,$5}'
但我怎麼才能取得hash
每個文件呢?我試過:
ll -h | awk '{print $9,$10,$11,$12,$5}' | md5sum
但我只得到一個哈希值。
答案1
你不應該解析 ls,而是使用這個:
for f in * .*; do
[ -f "$f" ] && \
printf "%s %s %s\n" "$f" $(du -h -- "$f" | cut -f1) $(md5sum -- "$f" | cut -d' ' -f1)
done
- 此
for
循環遍歷目前目錄中的所有檔案和目錄。[ -f "$f" ]
檢查它是否為常規文件printf "%s %s %s\n"
以所需的格式列印參數。"$f"
第一個參數是檔名du -h -- "$f" | cut -f1
第二個是大小(人類可讀),但不是檔案名,cut
刪除除第一個欄位之外的所有內容md5sum -- "$f" | cut -d' ' -f1
第三個是 MD5 和,但不包含檔案名稱。