我想在目录中解压缩Z文件,然后删除它们(但保留原始的Z文件)。这样做的最佳方式是什么?
谢谢!
编辑:如果在解压缩后删除Z文件,我怎么能压缩它们 - 它们非常多。一个想法:是否可以将文件解压缩到一个文件夹中,然后将该文件夹压缩回Z文件?
答案 0 :(得分: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)删除未压缩的文件和临时目录