筆者之前接觸的歸檔和備份都是在windows下完成的,而在linux就可以通過簡(jiǎn)單的命令行來完成這項(xiàng)操作。頓時(shí)就便捷了許多。
首先是對(duì)文件進(jìn)行壓縮,通過gzip(可以用來壓縮一個(gè)或多個(gè)文件)程序來實(shí)現(xiàn)。首先創(chuàng)建一個(gè)名為foo.txt的文本文件,其內(nèi)容包含一個(gè)目錄的列表清單,然后運(yùn)行g(shù)zip命令,它會(huì)把原始文件替換為一個(gè)叫做foo.txt.gz的壓縮文件,在foo.*文件列表中,可以看到原始文件被壓縮文件所替代,大小大概是原始文件的十五分之一,壓縮的文件與原始文件有著同樣的權(quán)限和時(shí)間。接下來運(yùn)行 gunzip(用來把壓縮文件復(fù)原為沒有被壓縮的文件)程序來解壓文件,下一步就是用-t和-v選項(xiàng)來測(cè)試了壓縮文件的完整性。另外,bzip2程序使用了不同的壓縮算法,舍棄了壓縮速度,從而實(shí)現(xiàn)了更高的壓縮級(jí)別,用擴(kuò)展名.bz2來表示。
接著是歸檔文件,經(jīng)典的工具是用tar程序,它是一款制作磁帶備份的工具,它也同樣適用于其它的存儲(chǔ)設(shè)備。首先重新創(chuàng)建之前用過的操練場(chǎng),下一步,創(chuàng)建整個(gè)操練場(chǎng)的tar包,需要注意的是,必須先指定模式,然后才是其它的選項(xiàng),接著,抽取tar包playground到一個(gè)新位置,這就需要先創(chuàng)建一個(gè)foo的新目錄,更改目錄,并抽取tar包中的文件,此時(shí)檢查目錄中的內(nèi)容,就會(huì)看到這個(gè)文件已經(jīng)被成功的安裝了,就是創(chuàng)建了一個(gè)精確的原始文件的副本。另外,tar命令處理歸檔文件路徑名的方式也非常有趣,默認(rèn)狀況下,路徑名是相對(duì)的,而不是絕對(duì)路徑。
其次,zip程序既是壓縮工具,也是一個(gè)打包工具,在windows中用戶會(huì)比較熟悉,因?yàn)樗x取和寫入.zip文件,而在linux中g(shù)zip和bzip2是主要的壓縮文件。在創(chuàng)建zip版本的文件包時(shí),zip命令通常會(huì)顯示一系列的信息,這些信息顯示了添加到文件包中每個(gè)文件的狀態(tài)。zip命令會(huì)使用2種存儲(chǔ)方法之一,其中之一就是會(huì)store沒有壓縮的文件,還有一種就是會(huì)deflate文件,執(zhí)行壓縮操作,zip命令可以接受標(biāo)準(zhǔn)輸入,二
而unzip程序卻不接受標(biāo)準(zhǔn)輸入。
最后,同步文件和目錄也是很重要的一部分。對(duì)本地文件使用rsync命令,首先,清空foo目錄,其中包括了-a選項(xiàng)(遞歸和保護(hù)文件屬性)和-v選項(xiàng)(冗余輸出),來在foo目錄中制作一個(gè)playground目錄的鏡像,目錄之間不存在差距,因此不需要復(fù)制任何數(shù)據(jù),若修改了文件,rsync命令監(jiān)測(cè)到修改,并且只是復(fù)制了更新的文件。