使用 find 时打印已处理文件的状态

使用 find 时打印已处理文件的状态

我在“xargs”中使用多进程来处理一堆 zip 文件。如何显示多进程中处理的文件数?

find -type f -iname \*.zip | xargs -IZ -P 5 sh -c 'unzip "Z"'

我怎样才能获得当前正在处理的文件数量..?我只是想知道到目前为止已经处理了多少文件..?假设我有 1k zip 文件,我需要知道到目前为止处理了多少个 zip 文件,例如“处理文件:200”“处理文件:400”或“处理文件:1000 个中的 405 个”

谢谢..

答案1

尝试:

find -type f -iname \*.zip | xargs -IZ -P 5 sh -c 'unzip "Z"; echo "Z" >> done.txt'

wc -l done.txt查看已完成的数量或cat done.txt查看完成的列表。

请注意,如果任何文件名中存在换行符,则会失败。如果你有一些,而echo one_more不是使用echo "Z"它来至少得到你想要的东西。

相关内容