tar語法mysql
#壓縮
tar -czvf ***.tar.gz
tar -cjvf ***.tar.bz2
#解壓縮
tar -xzvf ***.tar.gz
tar -xjvf ***.tar.bz2linux
tar [主選項+輔選項] 文件或目錄
主選項是必需要有的,它告訴tar要作什麼事情。
輔選項是輔助使用的,能夠選用。sql
tar經常使用命令:shell
主選項:
-x 從檔案文件中釋放文件。
-c 建立新的檔案文件。若是用戶想備份一個目錄或是一些文件,就要選擇這個選項。
-r 把要存檔的文件追加到檔案文件的末尾。例如用戶已經作好備份文件,又發現還有一個目錄或
是一些文件忘 記備份了,這時可使用該選項,將忘記的目錄或文件追加到備份文件中。
-t 列出檔案文件的內容,查看已經備份了哪些文件。
-u 更新文件。就是說,用新增的文件取代原備份文件,若是在備份文件中找不到要更新的文件,
則把它追加到備份文件的最後。
輔助選項:
-j 表明使用‘bzip2’程序進行文件的壓縮 tar.bz2
-z 用gzip來壓縮/解壓縮文件,加上該選項後能夠將檔案文件進行壓縮,但還原時也必定要使用該
選項進行解壓縮。 tar.gz
-v 詳細報告tar處理的文件信息。如無此選項,tar不報告文件信息。
-b 該選項是爲磁帶機設定的,其後跟一數字,用來講明區塊的大小,系統預設值爲20(20×512 bytes)。
-f 使用檔案文件或設備,這個選項一般是必選的。
-k 保存已經存在的文件。例如把某個文件還原,在還原的過程當中遇到相同的文件,不會進行覆蓋。
-m 在還原文件時,把全部文件的修改時間設定爲。
-M 建立多卷的檔案文件,以便在幾個磁盤中存放。
-w 每一步都要求確認。數據庫
tar包管理
一、tar包的建立
tar -cvf file.tar file1 file2
tar -zcvf file.tar.gz file1 file2
tar -jcvf file.tar.bz2 file1 file2
二、tar包的查看
tar -tvf file.tar
tar -ztvf file.tar.gz
tar -jtvf file.tar.bz2
三、釋放tar包
tar -xvf file.tar
tar -zxvf file.tar.gz
tar -jxvf file.tar.bz2ui
補充一點 若是須要打包一個文件夾,但其中的幾個文件不須要打包,命令以下編碼
打包test文件夾 test裏的 1 這個文件夾不須要打包加密
[root@localhost /]# cd /usr/testspa
[root@localhost test]# ls.net
1 2 3
返回/usr 目錄
[root@localhost test]# cd /usr
[root@localhost usr]# tar -zcvf test.tar.gz --exclude=test/1 test
test/
test/3/
test/3/333.png
test/2/
test/2/222.png
果真沒有打包test/1 文件夾
[root@localhost usr]# tar -zcvf test.tar.gz --exclude=test/1 test
打包命令 包名字 排除文件(注意路徑) 打包文件
範例一:將整個 /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
============================================
zip:
$ zip -r -q -o shiyanzip /home/shiyan
$ du -h shiyan.zip
$ file shiyan.zip
上面命令將 shiyan 的 home 目錄打包成一個文件,並查看了打包後文件的大小和類型。
第一行命令中,
-r (recursive)參數表示遞歸打包包含子目錄的所有內容,
-q (quit)參數表示爲安靜模式,即不向屏幕輸出信息,
-o,表示輸出文件,需在其後緊跟打包輸出文件名。
後面使用du命令查看打包後文件的大小(後面會具體說明該命令)。
$ du -h -d 0 *.zip ~ | sort
74m /home/shiyan
34m shiyan_9.zip
37m shiyan_1.zip
這裏添加了一個參數用於設置壓縮級別-[1-9]
,1表示最快壓縮但體積大,9表示體積最小但耗時最久。
最後那個-x
是爲了排除咱們上一次建立的 zip 文件,不然又會被打包進這一次的壓縮文件中,
注意:這裏只能使用絕對路徑,不然不起做用。
咱們再用du
命令分別查看默認壓縮級別、最低、最高壓縮級別及未壓縮的文件的大小:
使用-e
參數能夠建立加密壓縮包:
$ zip -r -e -o shiyan_encryption.zip /home/shiyan
注意: 關於zip
命令,由於 Windows 系統與 Linux/Unix 在文本文件格式上的一些兼容問題,
好比換行符(爲不可見字符),在 Windows 爲 CR+LF(Carriage-Return+Line-Feed:回車加換行),
而在 Linux/Unix 上爲 LF(換行),
因此若是在不加處理的狀況下,在 Linux 上編輯的文本,在 Windows 系統上打開可能看起來是沒有換行的。
若是你想讓你在 Linux 建立的 zip 壓縮文件在 Windows 上解壓後沒有任何問題,那麼你還須要對命令作一些修改:
$ zip -r -l -o shiyanlou.zip /home/shiyanlou
須要加上-l
參數將LF
轉換爲CR+LF
來達到以上目的。
unzip
命令解壓縮zip文件將shiyanlou.zip
解壓到當前目錄:
$ unzip shiyan.zip
使用安靜模式,將文件解壓到指定目錄:
$ unzip -q shiyan.zip -d ziptest
上述指定目錄不存在,將會自動建立。若是你不想解壓只想查看壓縮包的內容你可使用-l
參數:
$ unzip -l shiyanlou.zip
注意: 使用unzip解壓文件時咱們一樣應該注意兼容問題,不過這裏咱們關心的再也不是上面的問題,而是中文編碼的問題.
一般 Windows 系統上面建立的壓縮文件,若是有有包含中文的文檔或以中文做爲文件名的文件時默認會採用 GBK 或其它編碼,而 Linux 上面默認使用的是 UTF-8 編碼,若是不加任何處理,直接解壓的話可能會出現中文亂碼的問題(有時候它會自動幫你處理),爲了解決這個問題,咱們能夠在解壓時指定編碼類型。
使用-O
(英文字母,大寫o)參數指定編碼類型:
unzip -O GBK 中文壓縮文件.zip
rar
打包壓縮命令: