tar 打包的時候去掉目錄前綴


tar 打包時去掉目錄前綴

說明

例: 現有目錄結構如下所示.

# tree /a
/a
└── b
    └── c
        ├── hello
        └── hello.md5sum

正常情況打包c目錄下的文件

壓縮
# tar cf /opt/test.tar /a/b/c/hello /a/b/c/hello.md5sum 

解壓
# tar xf test.tar 
# ls
a  test.tar
# tree /opt/a/
/opt/a/
└── b
    └── c
        ├── hello
        └── hello.md5sum

如上所示,在正常情況下壓縮目錄下的文件默認會打包帶上目錄結構,一直到最后一層需要打包的文件。
那么如何實現打包時只壓縮最后一層的文件,而不帶上任何目錄或者是不需要的幾級目錄呢?

實現方式

一、cp

使用cp命令,先將文件拷貝到目標路徑,再進行打包。

# cp /a/b/c/* /opt/ && cd /opt && tar cf /opt/test2.tar ./hello ./hello.md5sum 

二、使用"--transform"

參數: --transform s=xxx/==

# tar cvf /trans/testfile2.tar.gz --transform s=a/b/c/== ./a/b/c/hello ./a/b/c/hello.md5sum

解釋:"s=a/b/c/==" 表示省略的目錄,后面就是要打包所有的文件

# tar xf testfile2.tar.gz
# ls
hello  hello.md5sum

以上就是通過--transform 打包不帶目錄的文件


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM