如何仅将路径中的最后一个目录打包到 tar 文件中?

ten*_*zor 5 linux command-line path tar archive

如何仅将路径中的最后一个目录打包到 tar 文件中?例如我有几条路径

/usr/local/files/dir1/

   file1.txt
   file2.txt
   file3.txt

/usr/local/files/dir2/

   file3.txt
   file4.txt
   file5.txt
Run Code Online (Sandbox Code Playgroud)

如果我运行命令:

tar czf my_arch.tar.gz -C /usr/local/files/dir1 .
Run Code Online (Sandbox Code Playgroud)

我只获得了dir1目录的包含,而没有它本身。

所以我有 - my_arch.tar.gz/file1.txt、file2.txt、file3.txt,但我的档案中需要这样的结构 -

my_arch.tar.gz/dir1/file1.txt, file2.txt, file3.txt
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

谢谢。

Al *_*ico 0

如果我正确理解您的要求,您希望您的 tar 文件包含该目录。

尝试不使用 -C 标志,如下所示:

tar -czf my_arch.tar.gz /usr/local/files/dir1
Run Code Online (Sandbox Code Playgroud)