How I can pack into tar-file only last directory from path?
如何将路径中的最后一个目录打包到tar文件中?例如,我有几个路径
1 2 3 4 5 6 7 8 9 10 11 | /usr/local/files/dir1/ file1.txt file2.txt file3.txt /usr/local/files/dir2/ file3.txt file4.txt file5.txt |
如果我运行命令:
1 | tar czf my_arch.tar.gz -C /usr/local/files/dir1 . |
我只得到dir1目录的包含,没有它本身。
所以我有-my-arch.tar.gz/file1.txt,file2.txt,file3.txt,但是我需要在我的档案中有这样的结构-
1 | my_arch.tar.gz/dir1/file1.txt, file2.txt, file3.txt |
我该怎么做?
谢谢您。
你不能直接通过tar来完成。我的建议是:
1 2 3 4 5 6 | #!/bin/bash mydir=/my_dir/whit/long_and/complicated_path/the_stuff_is_here dirname=$(dirname $mydir ) basename=$(basename $mydir ) tar cvf /tmp/$basename.tar -C $dirname $basename |
尝试
1 2 | cd /usr/local/files tar -cvzf my_arch.tar.gz dir1 |
-c指令将使您更改为dir1,因此不会对文件夹进行存档,而是将其内容:
1
2 -C, --directory DIR
change to directory DIR
如果我理解您的要求,您希望您的tar文件包含目录。
尝试不带-c标志,如:
1 | tar -czf my_arch.tar.gz /usr/local/files/dir1 |