我有一个目录,例如/var/tmp/my-dir/
我经常使用以下命令压缩:
$ cd /var/tmp/
$ tar -zcf my-dir.tar.gz my-dir/*
稍后,当我解压 my-dir.tar.gz 时,它将在当前目录中创建 my-dir/
。听起来 my-dir
目录被“包裹”在 tarball 中。是否有一个 tar 选项可以将 my-dir
重命名为例如your-dir
before 实际的 tarring 发生了。这样……
$ tar -zxf my-dir.tar.gz
# So that ... this creates your-dir/, instead of my-dir/
谢谢。
最佳答案
哪个tar
?
GNU Tar接受一个 --transform
参数,你可以给它一个 sed
表达式来操作文件名。
例如解包时重命名:
tar -zxf my-dir.tar.gz --transform s/my-dir/your-dir/
BSD tar 和 Star 同样有一个 -s
参数,采用简单的 /old/new/
(不是一般的 sed
表达式).
关于bash - 在 tar 发生之前重命名目录名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9729793/