Shell 命令進階(一)

文件處理和歸檔

  1. paste:合併文件,合併一個文件或多個文件中的行。

    paste [option]... [file]...

    -d:指定分隔符

    paste -d'|' file1 file2

    合併兩個以上文件時,可以指定多個分隔符

    paste -d':,' file1 file2 file3

    -s :paste 命令可以順序地合併文件。即它順序地將每個文件中的所有行的內容合併爲一行,由此每個文件的內容被合併爲單一的一行。

    -d'|' -s 合併時可以指定分隔符。

    paste - - <file1 將文件的內容由一列轉換爲兩列。

    paste -d: - - <file1 轉爲兩列並指定分隔符

    paste - - - < file1 將一列轉爲3列

  2. dd:備份和拷貝文件

    dd命令有如下兩個基本參數:

    if=<inputfile>  指定輸入文件的路徑,默認爲標準輸入。

    of=<outputfile> 指定輸出文件的路徑,默認爲標準輸出。


    例:直接複製一個磁盤/dev/sda的數據到另一個磁盤/dev/sdb

    dd if=/dev/sda of=/dev/sdb

    例:複製一個dvd光盤的數據到一個iso文件

    dd if=/dev/dvd of=dev.iso

    例:擦除一個分區的數據

    dd if=/dev/zero of=/dev/sda2



  /dev/zero 是linux系統中的一個特殊文件。從文件/dev/zero讀出的內容均爲空字符。它的一個典型用途就是提供用於初始化數據存儲器的字符流。

  dd 另外兩個比較重要的參數:

 bs=<n> 指定輸入和輸出的塊大小。默認單位爲字節

 count=<n> 從輸入讀取的塊數量

 例如:創建一個1MB大小的文件,並且塊大小爲1024bytes

 dd if=/dev/zero of=/tmp/outfile bs=1024 count=1024

 備份磁盤的主引導分區:

 dd if=/dev/sda of=/home/dong/MBR.image bs=512 count=1

 下面命令的組合可以用於設備的標準測試,並分析其在塊大小1024字節時的順序的讀寫性能:

 dd if=/dev/zero bs=1024 count=1000000 of=/home/dong/1GB.file

 dd if=/home/dong/1GB.file of=/dev/null bs=64k

 /dev/null也是linux系統中的一個特殊文件。就像一個黑洞,它可以接受所有向它寫入的數據,而從這個文件中讀不出任何數據。所有想過濾掉的輸出數據都可以重定向到這個文件。


3. gzip、bzip2:壓縮和歸檔文件

 gzip file 直接生成一個.gz結尾的文件。

 -c:gizp命令會將壓縮內容輸出到標準輸出,所有可以使用重定向將輸出內容寫入到指定的文件,從而保留原始文件。

 -d:gzip命令將解壓縮指定的文件。

 -r:gzip命令將遞歸的壓縮指定目錄下的文件。

 -#:壓縮級別 1-9 1壓縮速度最快,9壓縮率最高

 

 bzip2 file 生成一個.bz2的文件

 -k:可以壓縮文件並保留原文件

 -d:解壓文件

 -f:覆蓋已存在文件

 壓縮級別-1~-9 但-9是bzip2命令採用的默認級別。

4.gunzip、bunzip2:解壓縮文件

 gunzip image1.jpb.gz

 -c:將解壓後的內容重定向到一個文件,以保留原始壓縮文件

 gunzip -c image.jpb.gz>image.jpg

 bunzip2命令與bizp2命令相應,用於解壓縮由bzip2命令的壓縮文件。其作用與bzip2命令的-d選項相同。

 bunzip2 image1.jpg.bz2 解壓縮一個文件。

 -k:解壓文件並保留原始文件

 bunzip2 -k image1.jpg.bz2


5.tar:打包和解包文件

 tar命令是Linux系統中主要的歸檔工具。

 tar命令的語法如下所示:

 tar [option]... [file]...

 使用-cvf選項,創建一個未經壓縮的tar包。

 tar -cvf don.tar /home/dong

 -c:創建一個新的歸檔。

 -v:冗長地列出被處理的文件

 -f:指定歸檔文件的名稱


 -z:使用gzip壓縮

 -j:使用bzip2壓縮

 

 tar -xvf 對一個歸檔文件解包

 tar -xvf don.tar

 tar -xvf don.tar --wildcards '*.jpg'

 

 結合-z使用,可以對一個使用gzip壓縮的tar包進行解包

 結合-j使用,可以對一個使用bizp2壓縮的tar包進行解包。


 -tvf:可以在不解包的情況下列出tar包文件中的內容

 結合-z:可以在不解包的情況下列出使用gzip壓縮的tar包文件中的內容

 結合-j:可以在不解包的情況下列出使用bzip2壓縮的tar包文件中的內容

 -rvf:可以添加文件或目錄到一個已經存在的tar包

 -r不能與-j -z聯合使用

 -W:覈實tar包的內容

 tar -cWvf don.tar /home/don

 也可以用於覈實現存的tar包文件中的內容與文件系統中的內容是否存在差異。

 -W不能覈實壓縮過的文件。

 -d也可以比較tar包中的內容與文件系統中的內容的差異,但不具有核實的功能。

 tar -dvf don.tar

 或

 tar -dvf dong.tar.gz


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章