Vit*_*ich 1 command-line hashsum files
我想要这样的输出:name size 和hash:
myfile.txt 222M 24f4ce42e0bc39ddf7b7e879a
mynewfile.txt 353M a274613df45a94c3c67fe646
Run Code Online (Sandbox Code Playgroud)
因为name而且size只有我有
ll -h | awk '{print $9,$10,$11,$12,$5}'
Run Code Online (Sandbox Code Playgroud)
但是我怎样才能得到hash每个文件?我试过:
ll -h | awk '{print $9,$10,$11,$12,$5}' | md5sum
但我只得到一个哈希值。
你不应该解析 ls,而是使用这个:
for f in * .*; do
[ -f "$f" ] && \
printf "%s %s %s\n" "$f" $(du -h -- "$f" | cut -f1) $(md5sum -- "$f" | cut -d' ' -f1)
done
Run Code Online (Sandbox Code Playgroud)
for循环运行槽在当前目录下的所有文件和目录。
[ -f "$f" ] 检查它是否是一个普通文件printf "%s %s %s\n" 以所需格式打印参数。"$f" 第一个参数是文件名du -h -- "$f" | cut -f1第二个是大小(人类可读),但不是文件名,cut将除第一个字段之外的所有内容全部删除md5sum -- "$f" | cut -d' ' -f1 第三个是 MD5 总和,但没有文件名。