我想将多重bzip2
文件转换为gzip
格式。我做到了这一点,foor loop
但我想这样做find
:
BASH for 循环:
for i in $(ls -1 *.bz2); do echo "Converting: $i to ${i%.bz2}.gz"; { bunzip2 -c $i | gzip > ${i%.bz2}.gz; }; done
我尝试了类似的方法,但它不起作用:
find . -name "*.bz2" -type f -exec bunzip2 -c {} | gzip > ${1%.bz2}.gz \;
这不是那么简单。Find 只能调用带有“exec”参数的二进制文件,但您现在尝试调用 bunzip|gzip 管道。它不是一个简单的二进制文件,它是一个二进制文件链,要启动这样的东西,你需要一些可以处理管道的东西。
最好的东西是外壳。你必须调用一个 shell 来调用这个管道:
(我没有测试它,可能会出现一些语法问题,请将此视为模板。)