tar命令的相關使用

2021-06-14 15:37:28 字數 4937 閱讀 4617

參考一下說明,其中注意-c的用法。

tar命令

解壓檔案到指定目錄:tar -zxvf /home/zjx/aa.tar.gz -c /home/zjx/pf

tar [-cxtzjvfppn] 檔案與目錄....

引數:-c :建立乙個壓縮檔案的引數指令(create 的意思);

-x :解開乙個壓縮檔案的引數指令!

-t :檢視tarfile 裡面的檔案!

特別注意,在引數的下達中,c/x/t 僅能存在乙個!不可同時存在!

因為不可能同時壓縮與解壓縮。

-z :是否同時具有gzip 的屬性?亦即是否需要用gzip 壓縮?

-j :是否同時具有bzip2 的屬性?亦即是否需要用bzip2 壓縮?

-v :壓縮的過程中顯示檔案!這個常用,但不建議用在背景執行過程!

-f :使用檔名,請留意,在f 之後要立即接檔名喔!不要再加引數!

例如使用『tar -zcvfp tfile sfile』就是錯誤的寫法,要寫成

『tar -zcvpf tfile sfile』才對喔!

-p :使用原檔案的原來屬性(屬性不會依據使用者而變)

-p :可以使用絕對路徑來壓縮!

-n :比後面接的日期(yyyy/mm/dd)還要新的才會被打包進新建的檔案中!

--exclude file:在壓縮的過程中,不要將file 打包!

範例:範例一:將整個/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 時,再次提到這個指令跟大家再解釋囉!

gzip, zcat 命令

[root@linux ~]# gzip [-cdt#] 檔名

[root@linux ~]# zcat 檔名.gz

引數:-c :將壓縮的資料輸出到螢幕上,可透過資料流重導向來處理;

-d :解壓縮的引數;

-t :可以用來檢驗乙個壓縮檔的一致性~看看檔案有無錯誤;

-# :壓縮等級,-1 最快,但是壓縮比最差、-9 最慢,但是壓縮比最好!預設是-6 ~

範例:範例一:將/etc/man.config 複製到/tmp ,並且以gzip 壓縮

[root@linux ~]# cd /tmp

[root@linux tmp]# cp /etc/man.config .

[root@linux tmp]# gzip man.config

# 此時man.config 會變成man.config.gz !

範例二:將範例一的檔案內容讀出來!

[root@linux tmp]# zcat man.config.gz

# 此時螢幕上會顯示man.config.gz 解壓縮之後的檔案內容!!

範例三:將範例一的檔案解壓縮

[root@linux tmp]# gzip -d man.config.gz

範例四:將範例三解開的man.config 用最佳的壓縮比壓縮,並保留原本的檔案

[root@linux tmp]# gzip -9 -c man.config > man.config.gz

bzip2, bzcat 命令

[root@linux ~]# bzip2 [-cdz] 檔名

[root@linux ~]# bzcat 檔名.bz2

引數:-c :將壓縮的過程產生的資料輸出到螢幕上!

-d :解壓縮的引數

-z :壓縮的引數

-# :與gzip 同樣的,都是在計算壓縮比的引數,-9 最佳,-1 最快!

範例:範例一:將剛剛的/tmp/man.config 以bzip2 壓縮

[root@linux tmp]# bzip2 -z man.config

# 此時man.config 會變成man.config.bz2 !

範例二:將範例一的檔案內容讀出來!

[root@linux tmp]# bzcat man.config.bz2

# 此時螢幕上會顯示man.config.bz2 解壓縮之後的檔案內容!!

範例三:將範例一的檔案解壓縮

[root@linux tmp]# bzip2 -d man.config.bz2

範例四:將範例三解開的man.config 用最佳的壓縮比壓縮,並保留原本的檔案

[root@linux tmp]# bzip2 -9 -c man.config > man.config.bz2

compress 命令

[root@linux ~]# compress [-dcr] 檔案或目錄

引數:-d :用來解壓縮的引數

-r :可以連同目錄下的檔案也同時給予壓縮呢!

-c :將壓縮資料輸出成為standard output (輸出到螢幕)

範例:範例一:將/etc/man.config 複製到/tmp ,並加以壓縮

[root@linux ~]# cd /tmp

[root@linux tmp]# cp /etc/man.config .

[root@linux tmp]# compress man.config

[root@linux tmp]# ls -l

-rw-r--r-- 1 root root 2605 jul 27 11:43 man.config.z

範例二:將剛剛的壓縮檔解開

[root@linux tmp]# compress -d man.config.z

範例三:將man.config 壓縮成另外乙個檔案來備份

[root@linux tmp]# compress -c man.config > man.config.back.z

[root@linux tmp]# ll man.config*

-rw-r--r-- 1 root root 4506 jul 27 11:43 man.config

-rw-r--r-- 1 root root 2605 jul 27 11:46 man.config.back.z

# 這個-c 的引數比較有趣!他會將壓縮過程的資料輸出到螢幕上,而不是寫入成為

# file.z 檔案。所以,我們可以透過資料流重導向的方法將資料輸出成為另乙個檔名。

# 關於資料流重導向,我們會在bash shell 當中詳細談論的啦!

tar命令的使用

這種格式是我使用得最多的壓縮格式。它在壓縮時不會占用太多cpu的,而且可以得到乙個非常理想的壓縮率。使用下面這種格式去壓縮乙個目錄 tar cvf archive name.tar directory to compress 如何解包 tar xvf archive name.tar.gz 上面這個...

tar命令的使用

tar命令使用 壓縮 tar cvfz 目標檔案 原始檔1 原始檔2 例如 tar cvfz m.tar.gz hello.cpp hello.h 是目標檔案,hello.cpp和hello.h是原始檔 tar cvzf tar.gz 就壓縮資料夾下所有的檔案 tar xvjf tar.bz2 解壓...

tar 命令的使用

自 tar cxtzjvfppn 檔案與目錄 引數 c 建立乙個壓縮檔案的引數指令 create 的意思 x 解開乙個壓縮檔案的引數指令!t 檢視 tarfile 裡面的檔案!特別注意,在引數的下達中,c x t 僅能存在乙個!不可同時存在!因為不可能同時壓縮與解壓縮。z 是否同時具有 gzip 的...