2012-02-08 191 views
0

我想解压缩目录中的Z文件,然后删除它们(但保留原始Z文件)。做这件事的最好方法是什么?解压缩Z文件,然后在脚本中删除文件

谢谢!

编辑:如果Z文件在解压后被删除,我怎么压缩它们 - 它们非常多。一个想法:是否可以将文件解压缩到一个文件夹中,然后将该文件夹压缩回Z文件?

+0

它不清楚你在解压缩文件后对你的文件做了什么(除了重新压缩它们)。如果您只是暂时用grep查看文件,可以使用'uncompress -c $ {file} | grep srchTarget | sed“s/^/$ file:/”> srchResults.txt'并避免与重新压缩混淆。祝你好运。 – shellter 2012-02-08 14:13:57

+0

谢谢!他们实际上是我需要打印的报告。 :/ – cloudcalculus 2012-02-08 14:21:50

+0

考虑编辑您的问题,以包括您将要向您提交的文件的命令。可能有其他的技巧来避免重新压缩。祝你好运。 – shellter 2012-02-08 14:29:54

回答

2

Unix uncompress当文件解压缩时自动删除压缩文件。如果您想保留压缩文件并解压,以及,创建该文件的副本,并解压缩该副本:

#!/bin/sh 

for file in *.Z; do 

echo $file 

#copy to temporary file and uncompress 
cp $file tmp.Z 
uncompress tmp.Z 

#rename uncompressed temp file to match original name 
mv ${file%.*} $file 

done 

注意compress可以在一个文件一次只能工作。如果您需要将多个文件压缩在一起,则可以使用tar。例如,你可以修改上面的脚本,像这样:

#!/bin/sh 

mkdir tmp 

for file in *.Z; do 
mv $file tmp/ 
uncompress tmp/$file 
done 

tar -cf files.tar tmp/* 
compress files.tar 
rm -r tmp 

什么这个脚本现在确实是这样的:

1)建立在目前的一个 2临时目录中)解压缩所有文件.Z成目录 3)删除所有.Z文件(uncompress自动执行它) 4)结合了所有的文件汇集成files.tar归档 5)将压缩归档到files.tar.Z 6)删除未压缩的文件和临时目录