linux基礎命令 tar

2022-06-29 18:15:19 字數 4537 閱讀 5016

1.命令格式:

tar[必要引數][選擇引數][檔案] 

2.命令功能:

用來壓縮和解壓檔案。tar本身不具有壓縮功能。他是呼叫壓縮功能實現的 

3.命令引數:

必要引數有如下:

-a 新增壓縮檔案到已存在的壓縮

-b 設定區塊大小

-c 建立新的壓縮檔案

-d 記錄檔案的差別

-r 新增檔案到已經壓縮的檔案

-u 新增改變了和現有的檔案到已經存在的壓縮檔案

-x 從壓縮的檔案中提取檔案

-t 顯示壓縮檔案的內容

-z 支援gzip解壓檔案

-j 支援bzip2解壓檔案

-z 支援compress解壓檔案

-v 顯示操作過程

-l 檔案系統邊界設定

-k 保留原有檔案不覆蓋

-m 保留檔案不被覆蓋

-w 確認壓縮檔案的正確性

可選引數如下:

-b 設定區塊數目

-c 切換到指定目錄

-f 指定壓縮檔案

--help 顯示幫助資訊

--version 顯示版本資訊

4.常見解壓/壓縮命令

解包: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 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

.rar

解壓:rar x filename.rar

壓縮:rar a filename.rar dirname

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

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

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

[root@linux ~]# tar -cjvf /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 -tzvf /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 -xzvf /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 -xzvf /tmp/etc.tar.gz etc/passwd

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

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

範例五:將 /etc/

內的所有檔案備份下來,並且儲存其許可權!

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

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

範例六:在 /home 當中,比

2005/06/01 新的檔案才備份

[root@linux ~]# tar -n '2005/06/01' -czvf home.tar.gz /home

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

,但不要 /home/dmtsai

[root@linux ~]# tar --exclude /home/dmtsai -czvf 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 czvf mysql.tar.gz

/var/lib/mysql

壓縮的檔案,我想解壓到當前目錄下,而不是絕對路徑下,該如何解壓?

tar cxvf mysql.tar.gz 的話,會覆蓋 /var/lib/mysql

下全部檔案吧?我現在就乙個錶壞了,想單獨恢復乙個表的資料,而不是恢復全部資料庫,所以要解壓到指定的目錄下,再把那個表資料找不來恢復。

#tar zxvf mysql.tar.gz -c

/home/aaa

tar zxvf mysql.tar.gz -c

/home/aaa

這樣的話,解壓後的目錄結構是怎麼樣的?

/home/aaa/var/lib/mysql

嗎?試下就知道了....

歸檔裡面的所有檔案均是相對引用,歸檔解壓縮(釋放)在了當前目錄。歸檔檔案總是釋放到當前目錄,為的是防止破壞檔案系統中重名的檔案。

所以,樓主的解壓縮不會覆蓋/var/lib/mysql,只會釋放在當前目錄先,即./var/lib/mysql如果想覆蓋的話,在歸檔和解壓時請使用-p引數:

tar zcvf

mysql.tar.gz -p /var/lib/mysql

tar -pzxvf

mysql.tar.gz

Linux 命令 tar 命令

tar abcdgghiklmmoopprrsstuuvwwxzz b 區塊數目 c 目的目錄 f 備份檔案 f date 日期時間 atime preserve backuup 備份方式 checkpoint concatenate confirmation delete exclude 範本樣式...

Linux命令 tar命令

1.命令原型 tar 必要引數 選擇引數 檔案 2.詳解 這個五個是獨立命令,壓縮和解壓都要用到其中乙個,可以和別的命令連用但只能用其中乙個,下面的引數是根據需要在壓縮 下面的 f引數是必須的 1.將目錄test的檔案打成乙個名為test.tar的包。c是表示產生新的包,f指定包的檔名。tar cv...

Linux命令大全 tar命令

範例二 查閱上述 tmp etc.tar.gz 檔案內有哪些檔案?root linux tar ztvf tmp etc.tar.gz 由於我們使用 gzip 壓縮,所以要查閱該 tar file 內的檔案時,就得要加上 z 這個引數了!這很重要的!範例三 將 tmp etc.tar.gz 檔案解壓...