1. 程式人生 > >Linux檔案處理命令 file、mkdir、grep、dd、mv、diff

Linux檔案處理命令 file、mkdir、grep、dd、mv、diff

 file

      1.  作用

      file通過探測檔案內容判斷檔案型別,使用許可權是所有使用者。

      2.  格式

      file [options]  檔名

      3.  [options]  主要引數

      -v:   在標準輸出後顯示版本資訊,並且退出。

      -z:   探測壓縮過的檔案型別。

      -L:  允許符合連線。

      -f name:  從檔案namefile中讀取要分析的檔名列表。

      4.  簡單說明

      使用file命令可以知道某個檔案究竟是二進位制(ELF格式)的可執行檔案,還是Shell Script檔案,或者是其它的什麼格式。file 能識別的檔案型別有目錄、Shell 腳木、英文文字、二進位制可執行檔案、C語言原始檔、文字檔案、DOS的可執行檔案。

      5.  應用例項

      如果我們看到一個沒有後綴的檔案grap,可以使用下面命令:

      $ file grap

      grap: English text

      此時系統顯示這是一個英文文字檔案。需要說明的是,file命令不能探測包括圖形、音訊、視訊等多媒體檔案型別。

mkdir

      1.作用

      mkdir命令的作用是建立名稱為dimame的子目錄,與MS DOS下的md命令類似,它的使用許可權是所有使用者。

      2.格式

      mkdir [options]  目錄名

      3.[options]主要引數

      -m,  --mode=模式: 設定許可權<模式>; ,與chmod類似。

      -p,  --parents: 需要時建立上層日錄:如果目錄早已存在,則不當作錯誤。

      -v,--verbose: 每次建立新目錄都顯示資訊。

      --version: 顯示版本資訊後離開。

4.應用例項

在進行目錄建立時可以設定目錄的許可權,此時使用的引數是“-m”。假設要建立的目錄名是"tsk",  讓所有使用者都有rwx(即讀、寫、執行的許可權),那麼可以使用以下命令:

$ mkdir -m 777 tsk

grep

1.作用

 grep命令可以指定檔案中搜索特定的內容,並將含有這些內容的行標準輸出。grep 全稱是Global Regular Expression Print, 表示全域性正則表示式版本,它的使用許可權是所有使用者。

2.格式

grep [options]

3.主要引數

 [options] 主要引數:

 -c: 只輸出匹配行的計數。

 -I: 不區分大小寫(只適用於單字元)。

 -h: 查詢多檔案時不顯示檔名。

 -l: 查詢多檔案時只輸出包含匹配字元的檔名。

 -n: 顯示匹配行及行號。

 -s: 不顯示不存在或無匹配文字的錯誤資訊。

 -v: 顯示不包含匹配文字的所有行。

pattem正則表示式主要引數:

\: 忽略正則表示式中特殊字元的原有含義。

^: 匹配正則表示式的開始行。

$: 匹配正則表示式的結束行。

\<: 從匹配正則表示式的行開始。

\>: 到匹配正則表示式的行結束。

[ ]: 單個字元,如[A]即A符合要求。

[ - ]: 範圍,如[A-Z],即A、B、C一直到Z都符合要求。

。: 所有的單個字元。

*  : 有字元,長度可以為0。

正則表示式是Linux/Unix系統中非常重要的概念。正則表示式(也稱為"regex"或“regexp")是一個可以描述一類字串的模式 (Pattern)。如果一個字串 可以用某個正則表示式來描述,我們就說這個字元和該正則表示式匹配(Match)。這和DOS中使用者可以使用萬用字元“*”代表任意字元類似。在Linux系統上,正則表示式通常被用來查詢文字的模式,以及對文字執行“搜尋替換”操作和其它功能。

      4.應用例項

      查詢DNS服務是日常工作之一,這意味著要維護覆蓋不同網路的大量IP地址。有時IP地址會超過2000個。如果要檢視nnn.nnn網路地址,但是卻忘了第二部分中的其餘部分,只知到有兩個句點,例如nnn nn…。要抽取其中所有nnn.nnn IP地址,使用[ 0-9 ]\{3 \}\.[0-0\{3\}\。含義是任意數字出現3次,後跟句點,接著是任意數字出現3次,後跟句點。

$grep'[0- 9 ]\{3\}\.[0-0\{3\}\' ipfile

      補充說明,grep 家族還包括fgrep和egrep。fgrep 是fix grep,允許查詢字串而不是一個模式; egrep 是擴充套件grep,支援基本及擴充套件的正則表示式,但不支援\q模式範圍的應用及與之相對應的一些更加規範的模式。

dd

      1.作用

      dd命令用來複制檔案,並根據引數將資料轉換和格式化。

      2格式

      dd [options]

      3. [opitions]主要引數

      bs=位元組:  強迫 ibs=<位元組>; 及obs=<位元組>; 。

      obs位元組:  每次轉換指定的<寧節>,

      conv=關鍵字:  根據以逗號分隔的關鍵字表示的方式來轉換檔案。

      count=塊數目:只複製指定<塊數目>;的輸入資料。

      ibs=位元組:  每次讀取指定的<位元組>;。

      if=檔案:  讀取<檔案>; 內容,而非標準輸入的資料。

      obs=位元組:每次寫入指定的<位元組>;。

      of=檔案:  將資料寫入<檔案>;,而不在標準輸出顯示。

      seek=塊數目:先略過以obs為單位的指定<塊數目>; 的輸出資料。

      skip=塊數目:先略過以ibs為單位的指定<塊數目>; 的輸入資料,

      4. 應用例項

      dd命令常常用來製作Linux啟動盤,先找一個可引導核心,令它的根裝置指問正確的根分割槽,然後使用dd命令將其寫入軟盤:

      $ rdev vmlinuz/dev/hda

      $dd if=vmlinuz of=/dev/fd0

      上面程式碼說明,使用rdev命令將可引導核心vmlinuz中的根裝置指向/dev/hda, 請               把"hda"換成自己的根分割槽,接下來用dd命令將該核心寫入軟盤。

mv

      1. 作用

      mv命令用來為檔案或目錄改名,或者將檔案由一個目錄移入另一個日錄中,它的使用許可權是所有使用者,該命令如同DOS命令中的ren和move的組合。

      2. 格式

      mv[options] 原始檔或目錄  目標檔案或目錄

      3. [options]主要引數

      -i: 互動方式操作。如果mv操作將導致對已存在的目標檔案的覆蓋,此時系統詢問是否重寫,要求使用者回答"y"或"n",這樣可以避免誤覆蓋檔案。

      -f:  禁止互動操作。mv操作要覆蓋某個已有的目標檔案時不給任何指示,指定此引數後 i 引數將不再起作用。

      4. 應用例項

      (1)將/usr/cbu 中的所有檔案移到當前目錄(用":"表示)中:

      $ mv /usr/cbu/*.

      (2)將檔案 cjh.txt 重新命名為 wjz.txt:

      $ mv cjh.txt wjz.txt

diff

      1. 作用

      diff命令用於兩個檔案之間的比較,井指出兩者的不同,它的使用許可權是所有使用者。

      2. 格式

      diff [options]原始檔 目標檔案

      3. [options]主要引數

      -a: 將所有檔案當作文字檔案來處理。

      -b: 忽略空格造成的不同。

      -B: 忽略空行造成的不同。

      -c: 使用綱要輸出格式。

      -H: 利用試探法加速對大檔案的搜尋。

      -I: 忽略大小寫的變化。

      -n --rcs: 輸出RCS格式。