我的目录中有很多文件
/home/files/*
我还有一个.txt文件,其中包含我目录的某些文件的路径,例如
/home/files/file1
/home/files/file2
...
现在我想计算目录中所有文件的MD5总和,而不是我的.txt文件中列出的文件。
到目前为止,我已经关注了代码:
find /home/files/* -type f -mmin -5 -exec grep /home/list.txt md5sum {} >> /home/MD5.txt \;
我有什么改变,这会按预期工作?
答案 0 :(得分:1)
find
和xargs
:
find /home/files/* -type f -print0 | xargs -0 -L1 bash -c 'grep -qL "${1##*/}" /home/list.txt || md5sum "$1"' \; > md5.txt
答案 1 :(得分:1)
这应该有效:
find /home/files/* -type f -exec bash -c 'grep -qv "$1" /home/list.txt && md5sum "$1"' - {} \; >/home/MD5.txt
答案 2 :(得分:0)
或者 和 if :) 带文件列表的文件:
cat /home/centos/list.txt
/home/centos/files/1
/home/centos/files/3
目录:
ls files/
1 2 3 4 5
命令:
for i in `ls -d -1 /home/centos/files/*`; do if [ `grep -e $i list.txt` ]; then md5sum $i >> md5.txt; fi; done;
使用md5s文件:
cat md5.txt
d41d8cd98f00b204e9800998ecf8427e /home/centos/files/1
d41d8cd98f00b204e9800998ecf8427e /home/centos/files/3