我需要能够使用像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'{}'\;
谢谢。
答案 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" "{}"' \;
无需for
或while
。