首页 文章

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

提问于
浏览
3

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

/usr/local/files/dir1/

   file1.txt
   file2.txt
   file3.txt

/usr/local/files/dir2/

   file3.txt
   file4.txt
   file5.txt

如果我运行命令:

tar czf my_arch.tar.gz -C /usr/local/files/dir1 .

我只获得 dir1 目录的遏制,没有它自己 .

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

my_arch.tar.gz/dir1/file1.txt, file2.txt, file3.txt

我怎么能这样做?

谢谢 .

3 回答

  • 0

    尝试

    cd /usr/local/files
    tar -cvzf my_arch.tar.gz dir1
    

    -C指令将使您更改为dir1,因此不归档文件夹,但其内容:

    -C, - 目录DIR
    切换到目录DIR

  • 2

    你不能直接通过tar做到这一点 . 这是我的建议:

    #!/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
    
  • 2

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

    尝试没有-C标志,如:

    tar -czf my_arch.tar.gz /usr/local/files/dir1
    

相关问题