文件處理和歸檔
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列
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