use*_*647 2 pipe find xargs shell-script
我正在运行一个命令,它对某些文件进行快速校验和,就像这样
find / -type f -ctime +30 -mtime +30 -atime +30 -exec md5sum {} \; | xargs -P 4
Run Code Online (Sandbox Code Playgroud)
我正在尝试并行运行它
xargs -P 4
Run Code Online (Sandbox Code Playgroud)
现在,当我单独运行 find 命令时,我会看到每个文件都在校验和的输出。但是当我通过管道将它传输到 xargs 时,我不再看到 find 命令的输出。
有没有办法在将 find 传送到另一个命令时看到它的输出?
你要这个:
find / -type f -ctime +30 -mtime +30 -atime +30 -print0 | xargs -0 -P 4 md5sum
Run Code Online (Sandbox Code Playgroud)
您希望将文件列表输入 md5sum 命令。这是通过find / | xargs md5sum
. 然后你不想担心文件名中的疯狂字符(空格、换行符等),所以我们使用-print0
for find 和-0
for xargs。