将目录 tar 到与该目录同名的存档中?

将目录 tar 到与该目录同名的存档中?

是否有一种优雅的方式来压缩/归档整个目录并随后将其删除?到目前为止,我想出了庞大的解决方案。

从:

# ls -la
drwxr-xr-x 3 root root 4096 Jul  4 15:01 .
drwxr-xr-x 6 root root 4096 Jul  4 14:54 ..
drwxr-xr-x 4 root root 4096 Jul  4 14:59 stresstest

到:

# ls -la
drwxr-xr-x 3 root root 4096 Jul  4 15:01 .
drwxr-xr-x 6 root root 4096 Jul  4 14:54 ..
drwxr-xr-x 4 root root 4096 Jul  4 14:59 stresstest.tar.gz

编辑#1

问题是我事先不知道目录的名称(它是动态创建的,所以下次会不同),但它永远是这里唯一的目录。

答案1

$ for i in *;do tar zcvf ${i}.tgz $i; rm -fr $i;done

例子

$ for i in *;do tar zcvf ${i}.tgz $i; rm -fr $i;done
stresstest/
stresstest/file1
stresstest/file2
stresstest/file3

$ ll
total 4
-rw-r--r-- 1 root root 162 Jul  5 05:18 stresstest.tgz

答案2

(dir="stresstest"; tar zcvf ${dir}.tgz ${dir}; rm -rf $dir)

相关内容