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 檔案解壓...