linux tar打包指令

2021-07-05 12:40:54 字數 4068 閱讀 5786

範例一:將整個 /etc 目錄下的檔案全部打包成為 /tmp/etc.tar

[root@linux ~]# tar -cvf /tmp/etc.tar /etc <==僅打包,不壓縮!

[root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc <==打包後,以 gzip 壓縮

[root@linux ~]# tar -jcvf /tmp/etc.tar.bz2 /etc <==打包後,以 bzip2 壓縮

# 特別注意,在引數 f 之後的檔案檔名是自己取的,我們習慣上都用 .tar 來作為辨識。

# 如果加 z 引數,則以 .tar.gz 或 .tgz 來代表 gzip 壓縮過的 tar file ~

# 如果加 j 引數,則以 .tar.bz2 來作為附檔名啊~

# 上述指令在執行的時候,會顯示乙個警告訊息:

# 『tar: removing leading `/」 from member names』那是關於絕對路徑的特殊設定。

範例二:查閱上述 /tmp/etc.tar.gz 檔案內有哪些檔案?

[root@linux ~]# tar -ztvf /tmp/etc.tar.gz

# 由於我們使用 gzip 壓縮,所以要查閱該 tar file 內的檔案時,

# 就得要加上 z 這個引數了!這很重要的!

範例三:將 /tmp/etc.tar.gz 檔案解壓縮在 /usr/local/src 底下

[root@linux ~]# cd /usr/local/src

[root@linux src]# tar -zxvf /tmp/etc.tar.gz

# 在預設的情況下,我們可以將壓縮檔在任何地方解開的!以這個範例來說,

# 我先將工作目錄變換到 /usr/local/src 底下,並且解開 /tmp/etc.tar.gz ,

# 則解開的目錄會在 /usr/local/src/etc 呢!另外,如果您進入 /usr/local/src/etc

# 則會發現,該目錄下的檔案屬性與 /etc/ 可能會有所不同喔!

範例四:在 /tmp 底下,我只想要將 /tmp/etc.tar.gz 內的 etc/passwd 解開而已

[root@linux ~]# cd /tmp

[root@linux tmp]# tar -zxvf /tmp/etc.tar.gz etc/passwd

# 我可以透過 tar -ztvf 來查閱 tarfile 內的檔名稱,如果單只要乙個檔案,

# 就可以透過這個方式來下達!注意到! etc.tar.gz 內的根目錄 / 是被拿掉了!

範例五:將 /etc/ 內的所有檔案備份下來,並且儲存其許可權!

[root@linux ~]# tar -zxvpf /tmp/etc.tar.gz /etc

# 這個 -p 的屬性是很重要的,尤其是當您要保留原本檔案的屬性時!

範例六:在 /home 當中,比 2005/06/01 新的檔案才備份

[root@linux ~]# tar -n 『2005/06/01′ -zcvf home.tar.gz /home

範例七:我要備份 /home, /etc ,但不要 /home/dmtsai

[root@linux ~]# tar –exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc

範例八:將 /etc/ 打包後直接解開在 /tmp 底下,而不產生檔案!

[root@linux ~]# cd /tmp

[root@linux tmp]# tar -cvf – /etc | tar -xvf –

# 這個動作有點像是 cp -r /etc /tmp 啦~依舊是有其有用途的!

# 要注意的地方在於輸出檔變成 – 而輸入檔也變成 – ,又有乙個 | 存在~

# 這分別代表 standard output, standard input 與管線命令啦!

# 這部分我們會在 bash shell 時,再次提到這個指令跟大家再解釋囉!

.tar

解包:tar xvf filename.tar

打包:tar cvf filename.tar dirname

(注:tar是打包,不是壓縮!)

———————————————

.gz解壓1:gunzip filename.gz

解壓2:gzip -d filename.gz

壓縮:gzip filename

.tar.gz 和 .tgz

解壓:tar zxvf filename.tar.gz

壓縮:tar zcvf filename.tar.gz dirname

———————————————

.bz2

解壓1:bzip2 -d filename.bz2

解壓2:bunzip2 filename.bz2

壓縮: bzip2 -z filename

.tar.bz2

解壓:tar jxvf filename.tar.bz2 或tar –bzip xvf filename.tar.bz2

壓縮:tar jcvf filename.tar.bz2 dirname

———————————————

.bz解壓1:bzip2 -d filename.bz

解壓2:bunzip2 filename.bz

壓縮:未知

.tar.bz

解壓:tar jxvf filename.tar.bz

壓縮:未知

———————————————

.z解壓:uncompress filename.z

壓縮:compress filename

.tar.z

解壓:tar zxvf filename.tar.z

壓縮:tar zcvf filename.tar.z dirname

———————————————

.zip

解壓:unzip filename.zip

壓縮:zip filename.zip dirname

壓縮乙個目錄使用 -r 引數,-r 遞迴。例: $ zip -r filename.zip dirname

———————————————

.rar

解壓:rar x filename.rar

壓縮:rar a filename.rar dirname

rar請到:

解壓後請將rar_static拷貝到/usr/bin目錄(其他由$path環境變數指定的目錄也可以) 二:

在很多時候,我們要對某乙個目錄打包,而這個目錄下有幾十個子目錄和子檔案,我們需要在打包的時候排除其中1、2個目錄或檔案。

這時候我們在用tar命令打包的時候,增加引數 --exclude 就能達到目的。

例如:我們以tomcat 為例,打包的時候我們要排除 tomcat/logs 目錄,命令如下:

tar -zcvf tomcat.tar.gz --exclude=tomcat/logs tomcat

如果要排除多個目錄,增加 --exclude 即可,如下命令排除logs和libs兩個目錄及檔案xiaoshan.txt:

tar -zcvf tomcat.tar.gz --exclude=tomcat/logs --exclude=tomcat/libs --exclude=tomcat/xiaoshan.txt tomcat

這裡要說一下注意事項:

大家都知道linux在使用tab鍵的時候會對目錄名稱自動補全,這很方便,大家也比較常用。

如我們輸入 tomcat/lo 的時候按tab鍵,命令行會自動生成 tomcat/logs/ ,對於目錄,最後會多乙個 「/」

這裡大家要注意的時候,在我們使用tar 的--exclude 命令排除打包的時候,不能加「/」,否則還是會把logs目錄以及其下的檔案打包進去。

錯誤寫法:

tar -zcvf tomcat.tar.gz --exclude=tomcat/logs/ --exclude=tomcat/libs/ tomcat

正確寫法:

tar -zcvf tomcat.tar.gz --exclude=tomcat/logs --exclude=tomcat/libs tomcat

Linux tar打包命令

範例一 將整個 etc 目錄下的檔案全部打包成為 tmp etc.tar root linux tar cvf tmp etc.tar etc 僅打包,不壓縮!root linux tar zcvf tmp etc.tar.gz etc 打包後,以 gzip 壓縮 root linux tar jc...

Linux tar打包命令

範例一 將整個 etc 目錄下的檔案全部打包成為 tmp etc.tar root linux tar cvf tmp etc.tar etc 僅打包,不壓縮!root linux tar zcvf tmp etc.tar.gz etc 打包後,以 gzip 壓縮 root linux tar jc...

Linux tar打包命令

範例一 將整個 etc 目錄下的檔案全部打包成為 tmp etc.tar root linux tar cvf tmp etc.tar etc 僅打包,不壓縮!root linux tar zcvf tmp etc.tar.gz etc 打包後,以 gzip 壓縮 root linux tar jc...