Tar a directory, but don't store full absolute paths in the archive

前端 未结 9 895
鱼传尺愫
鱼传尺愫 2020-12-04 05:14

I have the following command in the part of a backup shell script:

tar -cjf site1.bz2 /var/www/site1/

When I list the contents of the archi

相关标签:
9条回答
  • 2020-12-04 05:39

    Seems -C option upto tar v2.8.3 does not work consistently on all the platforms (OSes). -C option is said to add directory to the archive but on Mac and Ubuntu it adds absolute path prefix inside generated tar.gz file.

    tar target_path/file.tar.gz -C source_path/source_dir
    

    Therefore the consistent and robust solution is to cd in to source_path (parent directory of source_dir) and run

    tar target_path/file.tar.gz source_dir
    

    or

    tar -cf target_path/file.tar.gz source_dir
    

    in your script. This will remove absolute path prefix in your generated tar.gz file's directory structure.

    0 讨论(0)
  • 2020-12-04 05:42

    One minor detail:

    tar -cjf site1.tar.bz2 -C /var/www/site1 .
    

    adds the files as

    tar -tf site1.tar.bz2
    ./style.css
    ./index.html
    ./page2.html
    ./page3.html
    ./images/img1.png
    ./images/img2.png
    ./subdir/index.html
    

    If you really want

    tar -tf site1.tar.bz2
    style.css
    index.html
    page2.html
    page3.html
    images/img1.png
    images/img2.png
    subdir/index.html
    

    You should either cd into the directory first or run

    tar -cjf site1.tar.bz2 -C /var/www/site1 $(ls /var/www/site1)
    
    0 讨论(0)
  • 2020-12-04 05:47

    Using the "point" leads to the creation of a folder named "point" (on Ubuntu 16).

    tar -tf site1.bz2 -C /var/www/site1/ .
    

    I dealt with this in more detail and prepared an example. Multi-line recording, plus an exception.

    tar -tf site1.bz2\
        -C /var/www/site1/ style.css\
        -C /var/www/site1/ index.html\
        -C /var/www/site1/ page2.html\
        -C /var/www/site1/ page3.html\
        --exclude=images/*.zip\
        -C /var/www/site1/ images/
        -C /var/www/site1/ subdir/
    /
    
    0 讨论(0)
提交回复
热议问题