帮我写一个shell脚本,用于解压当前目录和子目录中gz和xz包,解压到原目录
时间: 2023-06-07 19:09:12 浏览: 87
好的,以下是解压当前目录和子目录中gz和xz包的shell脚本:
```
#!/bin/bash
for file in $(find . -type f \( -name "*.gz" -o -name "*.xz" \))
do
dir=$(dirname "$file")
echo "解压 $file 到 $dir"
if [[ $file == *.gz ]]
then
gzip -d "$file"
else
xz -d "$file"
fi
done
```
请注意,此脚本可能会覆盖同名文件,建议在使用前备份数据。
相关问题
帮我写一个shell脚本,用于解压当前目录和子目录中gz和xz包,解压后才能删除压缩包
好的,我可以帮您写一个解压缩脚本。以下是脚本的内容:
```
#!/bin/bash
# 解压当前目录及子目录中的gz和xz文件,并删除压缩包
find . -name "*.gz" | while read filename
do
echo "Processing $filename"
tar -zxvf "$filename" && rm "$filename"
done
find . -name "*.xz" | while read filename
do
echo "Processing $filename"
tar -Jxvf "$filename" && rm "$filename"
done
echo "Done."
```
说明:
- 该脚本使用 find 命令寻找当前目录及子目录中的所有 gz 和 xz 文件,并通过 while 循环逐个处理。
- 对于每个文件,先打印出处理提示,然后使用 tar 命令解压缩(z 选项表示 gzip 格式,J 选项表示 xz 格式),最后删除原始压缩包。
- 处理完成后输出“Done.”。
如果您希望该脚本可以执行,需要先将其保存为一个文件(比如 uncompress.sh),然后设置其执行权限(chmod +x uncompress.sh),最后运行(./uncompress.sh)即可。
阅读全文