久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Linux 系統(tǒng)常見的壓縮指令

 winc0211c 2012-03-31
重要提醒:系統(tǒng)檢測到您的賬號可能存在被盜風險,,請盡快查看風險提示,,并立即修改密碼。 | 關(guān)閉

  網(wǎng)易博客安全提醒:系統(tǒng)檢測到您當前密碼的安全性較低,為了您的賬號安全,,建議您適時修改密碼 立即修改 | 關(guān)閉

  dragonflover的博客

  財富的天下,,天下的財富,我保留,,你拿走,! 在Linux的環(huán)境中,壓縮文件案的擴展名大多是:

  *.Z compress 程序壓縮的文件,;

  *.gz gzip 程序壓縮的文件,;

  *.bz2 bzip2 程序壓縮的文件;

  *.tar tar 程序打包的數(shù)據(jù),,并沒有壓縮過,;

  *.tar.gz tar 程序打包的文件,其中并且經(jīng)過 gzip 的壓縮

  *.tar.bz2 tar 程序打包的文件,,其中并且經(jīng)過 bzip2 的壓縮

  Linux上常見的壓縮指令就是 gzip 與 bzip2 ,,至于 compress 已經(jīng)退流行了。

  gzip, zcat

  gzip 可以說是應用度最廣的壓縮指令了,!目前 gzip 可以解開 compress, zip 與 gzip 等軟件所壓縮的文件,。 至于 gzip 所建立的壓縮文件為 *.gz 的檔名喔!讓我們來看看這個指令的語法吧:

  [root@www ~]# gzip [-cdtv#] 檔名

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

  選項與參數(shù):

  -c :將壓縮的數(shù)據(jù)輸出到屏幕上,,可透過數(shù)據(jù)流重導向來處理,;

  -d :解壓縮的參數(shù);

  -t :可以用來檢驗一個壓縮文件的一致性~看看文件有無錯誤,;

  -v :可以顯示出原文件/壓縮文件案的壓縮比等信息,;

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

  范例一:將 /etc/man.config 復制到 /tmp ,,并且以 gzip 壓縮

  [root@www ~]# cd /tmp

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

  [root@www tmp]# gzip -v man.config

  man.config: 56.1% -- replaced with man.config.gz

  [root@www tmp]# ll /etc/man.config /tmp/man*

  -rw-r--r-- 1 root root 4617 Jan 6 2007 /etc/man.config

  -rw-r--r-- 1 root root 2684 Nov 10 17:24 /tmp/man.config.back.Z

  -rw-r--r-- 1 root root 2057 Nov 10 17:14 /tmp/man.config.gz <==gzip壓縮比較佳

  范例二:由于 man.config 是文本文件,請將范例一的壓縮文件的內(nèi)容讀出來,!

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

  # 由于 man.config 這個原本的文件是是文本文件,,因此我們可以嘗試使用 zcat 去讀取,!

  # 此時屏幕上會顯示 man.config.gz 解壓縮之后的文件內(nèi)容,!

  范例三:將范例一的文件解壓縮

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

  # 不要使用 gunzip 這個指令,不好背,!使用 gzip -d 來進行解壓縮,!

  # 與 gzip 相反,, gzip -d 會將原本的 .gz 刪除,產(chǎn)生原本的 man.config 文件,。

  范例四:將范例三解開的 man.config 用最佳的壓縮比壓縮,,并保留原本的文件

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

  bzip2, bzcat

  若說 gzip 是為了取代 compress 并提供更好的壓縮比而成立的,那么 bzip2 則是為了取代 gzip 并提供更佳的壓縮比而來的,。 bzip2 真是很不錯用的東西~這玩意的壓縮比竟然比 gzip 還要好~至于 bzip2 的用法幾乎與 gzip 相同,! 看看底下的用法吧!

  [root@www ~]# bzip2 [-cdkzv#] 檔名

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

  選項與參數(shù):

  -c :將壓縮的過程產(chǎn)生的數(shù)據(jù)輸出到屏幕上,!

  -d :解壓縮的參數(shù)

  -k :保留源文件,,而不會刪除原始的文件喔!

  -z :壓縮的參數(shù)

  -v :可以顯示出原文件/壓縮文件案的壓縮比等信息,;

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

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

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

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

  范例二:將范例一的文件內(nèi)容讀出來,!

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

  # 此時屏幕上會顯示 man.config.bz2 解壓縮之后的文件內(nèi)容!,!

  范例三:將范例一的文件解壓縮

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

  范例四:將范例三解開的 man.config 用最佳的壓縮比壓縮,,并保留原本的文件

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

  tar-打包指令:

  [root@www ~]# tar [-j|-z] [cv] [-f 建立的檔名] filename... <==打包與壓縮

  [root@www ~]# tar [-j|-z] [tv] [-f 建立的檔名] <==察看檔名

  [root@www ~]# tar [-j|-z] [xv] [-f 建立的檔名] [-C 目錄] <==解壓縮

  選項與參數(shù):

  -c :建立打包文件,可搭配 -v 來察看過程中被打包的文件名(filename)

  -t :察看打包文件的內(nèi)容含有哪些文件名,,重點在察看『文件名』就是了,;

  -x :解打包或解壓縮的功能,可以搭配 -C (大寫) 在特定目錄解開

  特別留意的是,, -c, -t, -x 不可同時出現(xiàn)在一串指令列中,。

  -j :透過 bzip2 的支持進行壓縮/解壓縮:此時文件名最好為 *.tar.bz2

  -z :透過 gzip 的支持進行壓縮/解壓縮:此時文件名最好為 *.tar.gz

  -v :在壓縮/解壓縮的過程中,將正在處理的文件名顯示出來,!

  -f filename:-f 后面要立刻接要被處理的文件名,!建議 -f 單獨寫一個選項啰!

  -C 目錄 :這個選項用在解壓縮,,若要在特定目錄解壓縮,,可以使用這個選項。

  其他后續(xù)練習會使用到的選項介紹:

  -p :保留備份數(shù)據(jù)的原本權(quán)限與屬性,,常用于備份(-c)重要的配置文件

  -P :保留絕對路徑,亦即允許備份數(shù)據(jù)中含有根目錄存在之意,;

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

  其實最簡單的使用 tar 就只要記憶底下的方式即可:

  壓 縮:tar -jcv -f filename.tar.bz2 要被壓縮的文件或目錄名稱

  查 詢:tar -jtv -f filename.tar.bz2

  解壓縮:tar -jxv -f filename.tar.bz2 -C 欲解壓縮的目錄

  使用 tar 加入 -j 或 -z 的參數(shù)備份 /etc/ 目錄

  有事沒事備份一下 /etc 這個目錄是件好事!備份 /etc 最簡單的方法就是使用 tar 啰,!讓我們來玩玩先:

  [root@www ~]# tar -zpcv -f /root/etc.tar.gz /etc

  tar: Removing leading `/' from member names <==注意這個警告訊息

  /etc/

  ....中間省略....

  /etc/esd.conf

  /etc/crontab

  # 由于加上 -v 這個選項,,因此正在作用中的文件名就會顯示在屏幕上。

  # 如果你可以翻到第一頁,,會發(fā)現(xiàn)出現(xiàn)上面的錯誤訊息,!底下會講解。

  # 至于 -p 的選項,,重點在于『保留原本文件的權(quán)限與屬性』之意,。

  [root@www ~]# tar -jpcv -f /root/etc.tar.bz2 /etc

  # 顯示的訊息會跟上面一模一樣啰!

  [root@www ~]# ll /root/etc*

  -rw-r--r-- 1 root root 8740252 Nov 15 23:07 /root/etc.tar.bz2

  -rw-r--r-- 1 root root 13010999 Nov 15 23:01 /root/etc.tar.gz

  [root@www ~]# du -sm /etc

  118 /etc

  # 為什么建議您使用 -j 這個選項,?從上面的數(shù)值你可以知道了吧,?^_^

  查閱 tar 文件的數(shù)據(jù)內(nèi)容(可察看文件名),與備份文件名有否根目錄的意義

  [root@www ~]# tar -jtv -f /root/etc.tar.bz2

  如果你確定你就是需要備份根目錄到 tar 的文件中,,那可以使用 -P (大寫) 這個選項,,請看底下的例子分析:

  范例:將文件名中的(根)目錄也備份下來,并察看一下備份檔的內(nèi)容文件名

  [root@www ~]# tar -jpPcv -f /root/etc.and.root.tar.bz2 /etc

  ....中間過程省略....

  [root@www ~]# tar -jtf /root/etc.and.root.tar.bz2

  /etc/dbus-1/session.conf

  /etc/esd.conf

  /etc/crontab

  # 這次查閱文件名不含 -v 選項,,所以僅有文件名而已,!沒有詳細屬性/權(quán)限等參數(shù)。

  例題:系統(tǒng)備份范例

  系統(tǒng)上有非常多的重要目錄需要進行備份,,而且其實我們也不建議你將備份數(shù)據(jù)放置到 /root 目錄下,! 假設(shè)目前你已經(jīng)知道重要的目錄有底下這幾個:

  /etc/ (配置文件)

  /home/ (用戶的家目錄)

  /var/spool/mail/ (系統(tǒng)中,所有賬號的郵件信箱)

  /var/spool/cron/ (所有賬號的工作排成配置文件)

  /root (系統(tǒng)管理員的家目錄)

  然后我們也知道,,/home/loop* 不需要備份,,而且 /root 底下的壓縮文件也不需要備份,另外假設(shè)你要將備份的數(shù)據(jù)放置到 /backups ,,并且該目錄僅有 root 有權(quán)限進入,! 此外,每次備份的文件名都希望不相同,,例如使用:backup-system-20091130.tar.bz2 之類的文件名來處理,。 那你該如何處理這個備份數(shù)據(jù)呢?

  # 1. 先處理要放置備份數(shù)據(jù)的目錄與權(quán)限:

  [root@www ~]# mkdir /backups

  [root@www ~]# chmod 700 /backups

  [root@www ~]# ll -d /backups

  drwx------ 2 root root 4096 Nov 30 16:35 /backups

  # 2. 假設(shè)今天是 2009/11/30 ,,則建立備份的方式如下:

  [root@www ~]# tar -jcv -f /backups/backup-system-20091130.tar.bz2 \

  > --exclude=/root/*.bz2 --exclude=/root/*.gz --exclude=/home/loop* \

  > /etc /home /var/spool/mail /var/spool/cron /root

  ....(過程省略)....

  [root@www ~]# ll -h /backups/

  -rw-r--r-- 1 root root 8.4M Nov 30 16:43 backup-system-20091130.tar.bz2

  dump-完整備份工具:

  某些時刻你想要針對文件系統(tǒng)進行備份或者是儲存的功能時,,不能不談到這個 dump 指令!

  用 dump 備份完整的文件系統(tǒng)

  [root@www ~]# dump [-Suvj] [-level] [-f 備份檔] 待備份資料

  [root@www ~]# dump -W

  選項與參數(shù):

  -S :僅列出后面的待備份數(shù)據(jù)需要多少磁盤空間才能夠備份完畢,;

  -u :將這次 dump 的時間記錄到 /etc/dumpdates 文件中,;

  -v :將 dump 的文件過程顯示出來;

  -j :加入 bzip2 的支持,!將數(shù)據(jù)進行壓縮,,默認 bzip2 壓縮等級為 2

  -level:就是我們談到的等級,,從 -0 ~ -9 共十個等級;

  -f :有點類似 tar 啦,!后面接產(chǎn)生的文件,,亦可接例如 /dev/st0 裝置文件名等

  -W :列出在 /etc/fstab 里面的具有 dump 設(shè)定的 partition 是否有備份過?

  現(xiàn)在就讓我們來做幾個范例吧,!假如你要將系統(tǒng)的最小的文件系統(tǒng)捉出來進行備份,,那該如何進行呢?

  # 1. 先找出系統(tǒng)中最小的那個文件系統(tǒng),,如下所示:

  [root@www ~]# df -h

  Filesystem Size Used Avail Use% Mounted on

  /dev/hdc2 9.5G 3.7G 5.3G 42% /dev/hdc3 4.8G 651M 3.9G 15% /home

  /dev/hdc1 99M 11M 83M 12% /boot <==看起來最小的就是他啦,!

  tmpfs 363M 0 363M 0% /dev/shm

  # 2. 先測試一下,如果要備份此文件系統(tǒng),,需多少容量,?

  [root@www ~]# dump -S /dev/hdc1

  5630976 <==注意一下,這個單位是 bytes ,,所以差不多是 5.6MBytes,。

  # 3. 將完整備份的文件名記錄成為 /root/boot.dump ,同時更新記錄文件:

  [root@www ~]# dump -0u -f /root/boot.dump /boot

  DUMP: Date of this level 0 dump: Tue Dec 2 02:53:45 2008 <==記錄等級與備份時間

  DUMP: Dumping /dev/hdc1 (/boot) to /root/boot.dump <==dump的來源與目標

  DUMP: Label: /boot <==文件系統(tǒng)的 label

  DUMP: Writing 10 Kilobyte records

  DUMP: mapping (Pass I) [regular files] <==開始進行文件對應

  DUMP: mapping (Pass II) [directories]

  DUMP: estimated 5499 blocks. <==評估整體block數(shù)量

  DUMP: Volume 1 started with block 1 at: Tue Dec 2 02:53:46 2008

  DUMP: dumping (Pass III) [directories] <==開始 dump 工作

  DUMP: dumping (Pass IV) [regular files]

  DUMP: Closing /root/boot.dump <==結(jié)束寫入備份檔

  DUMP: Volume 1 completed at: Tue Dec 2 02:53:47 2008

  DUMP: Volume 1 5550 blocks (5.42MB) <==最終備份數(shù)據(jù)容量

  DUMP: Volume 1 took 0:00:01

  DUMP: Volume 1 transfer rate: 5550 kB/s

  DUMP: 5550 blocks (5.42MB) on 1 volume(s)

  DUMP: finished in 1 seconds, throughput 5550 kBytes/sec

  DUMP: Date of this level 0 dump: Tue Dec 2 02:53:45 2008

  DUMP: Date this dump completed: Tue Dec 2 02:53:47 2008

  DUMP: Average transfer rate: 5550 kB/s

  DUMP: DUMP IS DONE

  # 在指令的下達方面,,dump 后面接 /boot 或 /dev/hdc1 都可以的,!

  # 而執(zhí)行 dump 的過程中會出現(xiàn)如上的一些訊息,您可以自行仔細的觀察,!

  [root@www ~]# ll /root/boot.dump /etc/dumpdates

  -rw-rw-r-- 1 root disk 43 Dec 2 02:53 /etc/dumpdates

  -rw-r--r-- 1 root root 5683200 Dec 2 02:53 /root/boot.dump

  # 由于加上 -u 的選項,因此 /etc/dumpdates 該文件的內(nèi)容會被更新,!注意,,

  # 這個文件僅有在 dump 完整的文件系統(tǒng)時才有支持主動更新的功能。

  # 4. 觀察一下系統(tǒng)主動建立的記錄文件:

  [root@www ~]# cat /etc/dumpdates

  /dev/hdc1 0 Tue Dec 2 02:53:47 2008 +0800

  [文件系統(tǒng)] [等級] [ ctime 的時間 ]

  # 0. 看一下有沒有任何文件系統(tǒng)被 dump 過的資料,?

  [root@www ~]# dump -W

  Last dump(s) done (Dump '>' file systems):

  > /dev/hdc2 ( /) Last dump: never

  > /dev/hdc3 ( /home) Last dump: never

  /dev/hdc1 ( /boot) Last dump: Level 0, Date Tue Dec 2 02:53:47 2008

  # 如上列的結(jié)果,,該結(jié)果會捉出 /etc/fstab 里面第五字段設(shè)定有需要 dump 的

  # partition,然后與 /etc/dumpdates 進行比對,,可以得到上面的結(jié)果啦,!

  # 尤其是第三行,可以顯示我們曾經(jīng)對 /dev/hdc1 進行過 dump 的備份動作喔,!

  這樣很簡單的就建立起來 /root/boot.dump 文件,,該文件將整個 /boot/ 文件系統(tǒng)都備份下來了! 并且將備份的時間寫入 /etc/dumpdates 文件中,,準備讓下次備份時可以作為一個參考依據(jù),。 現(xiàn)在讓我們來進行一個測試,檢查看看能否真的建立 level 1 的備份呢,?

  # 1. 先惡搞一下,,建立一個大約 10 MB 的文件在 /boot 內(nèi):

  [root@www ~]# dd if=/dev/zero of=/boot/testing.img bs=1M count=10

  10+0 records in

  10+0 records out

  10485760 bytes (10 MB) copied, 0.166128 seconds, 63.1 MB/s

  # 2. 開始建立差異備份檔,,此時我們使用 level 1 吧:

  [root@www ~]# dump -1u -f /root/boot.dump.1 /boot

  ....(中間省略)....

  [root@www ~]# ll /root/boot*

  -rw-r--r-- 1 root root 5683200 Dec 2 02:53 /root/boot.dump

  -rw-r--r-- 1 root root 10547200 Dec 2 02:56 /root/boot.dump.1

  # 看看文件大小,豈不是就是剛剛我們所建立的那個大文件的容量嗎,? ^_^

  # 3. 最后再看一下是否有記錄 level 1 備份的時間點呢,?

  [root@www ~]# dump -W

  Last dump(s) done (Dump '>' file systems):

  > /dev/hdc2 ( /) Last dump: never

  > /dev/hdc3 ( /home) Last dump: never

  > /dev/hdc1 ( /boot) Last dump: Level 1, Date Tue Dec 2 02:56:33 2008

  ....(中間省略)....

  用 dump 備份非文件系統(tǒng),亦即單一目錄的方法

  現(xiàn)在讓我們來處理一下 /etc 的 dump 備份吧,!因為 /etc 并非單一文件系統(tǒng),,他只是個目錄而已。 所以依據(jù)限制的說明,, -u, level 1~9 都是不適用的,。我們只能夠使用 level 0 的完整備份將 /etc 給他 dump 下來。因此作法就變的很簡單了,!

  # 讓我們將 /etc 整個目錄透過 dump 進行備份,,且含壓縮功能

  [root@www ~]# dump -0j -f /root/etc.dump.bz2 /etc

  DUMP: Date of this level 0 dump: Tue Dec 2 12:08:22 2008

  DUMP: Dumping /dev/hdc2 (/ (dir etc)) to /root/etc.dump.bz2

  DUMP: Label: /1

  DUMP: Writing 10 Kilobyte records

  DUMP: Compressing output at compression level 2 (bzlib)

  DUMP: mapping (Pass I) [regular files]

  DUMP: mapping (Pass II) [directories]

  DUMP: estimated 115343 blocks.

  DUMP: Volume 1 started with block 1 at: Tue Dec 2 12:08:23 2008

  DUMP: dumping (Pass III) [directories]

  DUMP: dumping (Pass IV) [regular files]

  DUMP: Closing /root/etc.dump.bz2

  DUMP: Volume 1 completed at: Tue Dec 2 12:09:49 2008

  DUMP: Volume 1 took 0:01:26

  DUMP: Volume 1 transfer rate: 218 kB/s

  DUMP: Volume 1 124680kB uncompressed, 18752kB compressed, 6.649:1

  DUMP: 124680 blocks (121.76MB) on 1 volume(s)

  DUMP: finished in 86 seconds, throughput 1449 kBytes/sec

  DUMP: Date of this level 0 dump: Tue Dec 2 12:08:22 2008

  DUMP: Date this dump completed: Tue Dec 2 12:09:49 2008

  DUMP: Average transfer rate: 218 kB/s

  DUMP: Wrote 124680kB uncompressed, 18752kB compressed, 6.649:1

  DUMP: DUMP IS DONE

  # 上面特殊字體的部分顯示:原本有 124680kb 的容量,被壓縮成為 18752kb,,

  # 整個壓縮比為 6.649:1 ,,還可以的壓縮情況啦!

  restore

  備份檔就是在急用時可以回復系統(tǒng)的重要數(shù)據(jù),,所以有備份當然就得要學學如何復原了,! dump 的復原使用的是 restore 這個指令!

  [root@www ~]# restore -t [-f dumpfile] [-h] <==用來察看 dump 檔

  [root@www ~]# restore -C [-f dumpfile] [-D 掛載點] <==比較dump與實際文件

  [root@www ~]# restore -i [-f dumpfile] <==進入互動模式

  [root@www ~]# restore -r [-f dumpfile] <==還原整個文件系統(tǒng)

  選項與參數(shù):

  相關(guān)的各種模式,,各種模式無法混用喔,!例如不可以寫 -tC 啦!

  -t :此模式用在察看 dump 起來的備份文件中含有什么重要數(shù)據(jù),!類似 tar -t 功能,;

  -C :此模式可以將 dump 內(nèi)的數(shù)據(jù)拿出來跟實際的文件系統(tǒng)做比較,

  最終會列出『在 dump 文件內(nèi)有記錄的,,且目前文件系統(tǒng)不一樣』的文件,;

  -i :進入互動模式,可以僅還原部分文件,,用在 dump 目錄時的還原,!

  -r :將整個 filesystem 還原的一種模式,用在還原針對文件系統(tǒng)的 dump 備份,;

  其他較常用到的選項功能:

  -h :察看完整備份數(shù)據(jù)中的 inode 與文件系統(tǒng) label 等信息

  -f :后面就接你要處理的那個 dump 文件啰,!

  -D :與 -C 進行搭配,可以查出后面接的掛載點與 dump 內(nèi)有不同的文件,!

  

  

  



--------轉(zhuǎn)載













謫居黃城中,,把盞臨風,牽黃擎蒼嘆英雄,。昔日汴河風光處,,履履難重,。成敗任西東,此恨無窮,,為了豪情誰與同,?一蓑煙雨平生任,踏雪飛鴻,。



    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導購買等信息,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多