linux shell 學習摘記(6)

onephone發表於2016-10-03

《linux shell 指令碼程式設計攻略 (第2版)》 第六章 “B計劃” 筆記

常用命令: tar, gzip, zcat, zip, unzip, lzma, pbzip, rsync, git, squashfs, fsarchiver

  • tar歸檔(無壓縮功能)

    1. tar -cf output.tar file1 file2 file3建立, tar -tf output.tar列出
    2. tar -rvf original.tar newfile 向歸檔檔案中新增一個檔案
    3. tar -Af file1.tar file2.tar 合併兩個歸檔檔案
    4. tar -uf archive.tar file1 僅當file1比歸檔文件中的file新時喜愛進行追加
    5. tar -df archive.tar 比較歸檔檔案和檔案系統中的內容
    6. tar -f archive.tar --delete file1 file2tar --delete --file archive.tar file1 file2
    7. tar -cf arch.tar * --exclude "*.txt", tar -cf arch.tar * -X list list包含要排除的檔案列表
    8. --totals 在歸檔玩車功能之後列印出總歸檔位元組數
    9. 在歸檔時排除版本控制相關的檔案和目錄tar --exclude-vcs -czvvf sourcecode.tar.gz mysvn
  • tar壓縮歸檔

    1. -j bunzip2 格式壓縮
    2. -z gzip 格式壓縮
    3. --l lzma 格式壓縮
    4. tar acvf archive.tar.gz file1 file2, 自動選擇格式壓縮
  • cpio從stdin獲取檔名,並將歸檔寫入stdout, echo file1 file2 | cpio -ov > archive.cpio, -o指定輸出

  • gzip只能壓縮單個檔案或資料流

    1. gzip -l test.txt.gz 列出壓縮檔案中的內容
    2. tar -cavvf archive.tar.gz -C extract_directory
    3. gzip -5 test.img 壓縮率, 1級壓縮率最低,9級最高
  • zcat test.gz無需解壓直接讀取test.gz

  • bzip2語法同gzip, 但壓縮效率更高, test.tar.bz2

  • lzma 壓縮效率比上面的更高, unlzma, test.tar.lzma

  • zip同時有歸檔和壓縮功能, zip -r archive.zip folder1 folder2 對目錄和檔案進行遞迴操作, unzip file.zip, zip file.zip -u newfile 更新壓縮檔案中的內容, zip -d file.zip file1 刪除檔案

  • pbzip2更快速的歸檔工具 tar cf myfile.tar.bz2 --use-compress-prog=pbzip2 dir, pbzip2 -c ..., 還可指定處理器數量bpzip -p4 myfile.tar

  • 建立壓縮檔案系統 squashfs 還可利用環回形式掛載squashfs檔案系統mount -o loop compressedfs.squashfs /mnt/squash

  • rsync 備份系統快照(ssh)`

    1. rsync -av sourpath destinationpath, -a表示歸檔
    2. rsync -av /home/xxfile root@10.10.82.154:/home/xxfile, -avz可以在網路傳輸時壓縮資料
    3. 講一個目錄中的內容同步到另一個目錄rsync -av /home/test/ /homt/backups前者有/
    4. rsync -av /home/test /home/backups 將目錄本書及內容複製
    5. --exclude "*.txt" 排除指定的檔案,
    6. rsync -avz SOURCE DESTINATION --delete 備份時,查處不存在的檔案(針對遠端)
  • git 進行版本控制

  • fsarchiver建立全盤映象, 將整個檔案系統中的內容儲存成一個壓縮形式的歸檔檔案

相關文章