![通过压缩 tar 备份每个目录](https://linux22.com/image/1036274/%E9%80%9A%E8%BF%87%E5%8E%8B%E7%BC%A9%20tar%20%E5%A4%87%E4%BB%BD%E6%AF%8F%E4%B8%AA%E7%9B%AE%E5%BD%95.png)
我正在寻找一种方法来扫描目录(非递归)并使用原始文件夹名称对其进行 tar,然后删除该文件夹(所以我将只压缩该文件夹)有人有这样的命令吗?
答案1
我可以建议以下一行(假设当前目录是需要备份的目录的父目录):
for f in */; do tar -czf "${f%/}.tar.gz" "$f"; rm -rf "$f"; done
要将每个文件夹名称更改为小写,并用下划线替换空格:
for f in */; do f="${f// /_}"; f="${f,,}"; tar -czf "${f%/}.tar.gz" "$f" && rm -rf "$f"; done_