如何在单独的档案中找到所有exe文件并将它们tar.gz?

时间:2010-11-23 12:32:44

标签: bash

我需要能够使用像find这样的命令。

类似于此的东西。但是将每个exe文件存档在自己的tar.gz存档中。例如,win.exe将成为win.tar.gz,file.exe将成为file.tar.gz。

find folder_name -name“* .exe”-type f -print -exec tar -zcvf temp.tar.gz'{}'\;

谢谢。

4 个答案:

答案 0 :(得分:1)

find folder_name -name "*.exe" -type f|while read file; do 
    tar -zcvf $(basename $file).tar.gz $file; 
done

从存档名称中取出.exe作为练习;)。

答案 1 :(得分:0)

for file in *.exe
do
    tar -zcvf ${file/.exe}.tar.gz $file
done

或者在一条线上:

for file *.exe; do tar -zcvf ${file/.exe}.tar.gz $file; done

*.exe替换为folder_name/*.exe以搜索特定文件夹。

答案 2 :(得分:0)

汇总二:

find folder_name -name "*.exe" -type f|while read file; do
    localfile=$(basename $file); tar -zcvf ${localfile/%exe/tar\.gz} $file;
done

答案 3 :(得分:0)

试试这个:

find folder_name -name "*.exe" -type f -exec sh -c 'tar -zcvf "$(basename {} .exe).tar.gz" "{}"' \;

无需forwhile