2.2 目錄及文本文件操作命令

文件目錄操作命令


1. mkdir命令

mkdir用來創建指定名稱的目錄,要求創建目錄的用戶在當前目錄中具有寫權限,並且指定的目錄名不能是當前目錄中已有的目錄。

(1) 命令格式:mkdir [選項] 目錄

(2) 命令功能:在指定位置創建指定文件名命名的文件夾或目錄,要創建文件夾或目錄的用戶必須對所創建的文件夾的父文件夾具有寫權限,且同一個目錄下不能有重名的。

(3) 命令參數:

-m,--mode模式 設定權限<模式>(類似chmod),而不是rwxrwxrwx

-p,--parents可以是一個路徑的名稱,此時若路徑中的某些目錄不存在,加上此選項後系統將自動建立好那些尚不存在的目錄,即一次可以建立多個目錄

-v,--verbose創建當前新目錄或文件時顯示信息,如“已創建目錄test6”

(4) 命令實例:

①創建一個空目錄

             mkdir lijl_bj1(常用)

②遞歸創建多個目錄

             mkdir –p ./lijl_bj1/test(./表示當前目錄,../表示上級目錄,/表示根目錄)(常用)

③創建權限爲777的目錄

             mkdir –m 777 test777(常用)

④創建新目錄顯示信息

             mkdir –v test

⑤創建項目的目錄結構

    mkdir –vp

   src/{com/sitech/{admin/{entity/,dao/,service,controller},common/util/},config/}

(5) 注意事項:

最後一個實例⑤對順序是有要求的,即在-vp時才表示-v –p操作,而若是-pv則在上述語句中會默認爲創建-vp目錄。


2. ls命令

缺省下用來打印當前目錄的清單,如果ls指定其他目錄,那麼就會顯示指定目錄的文件及文件夾清單。通過ls命令不僅可以查看linux文件夾包含的文件,而且可以查看文件權限(包括目錄、文件夾、文件)、查看目錄信息等。

(1) 命令格式:ls [選項] [目錄名]

(2) 命令功能:列出目標目錄中所有的子目錄和文件

(3) 命令參數:

-a,列出目錄下的所有文件,包括以.開頭的隱含文件(常用)

-c 配合-lt根據ctime排序及根據ctime(文件狀態最後更改的時間)

配合-l 顯示ctime但根據名稱排序(常用)

-l 除了文件名之外,還將文件的權限、所有者、文件大小等信息詳細列出來(常用)

-t 以文件的修改順序排序

(4) 常用實例:

①列出 /lijl_bj1/com/src文件夾下的所有文件和目錄的詳細情況


clip_image002

進入lijl_bj1目錄,ls –l –R(或-lR) src

②列出當前目錄中所有以“s”開頭的所有文件目錄的信息,

           ls –l s*

clip_image004


3.cd命令

cd命令是Linux裏面最基本的命令,很多其他命令都是建立在它的基礎之上的

(1) 命令格式:cd [目錄名]

(2) 命令功能:切換當前目錄至dirName

(3) 常用範例:

①進入系統根目錄

             cd /

clip_image006

②進入當前目錄的上一級目錄:cd ..或者cd ..//

clip_image008

③進入當前用戶的主目錄

             cd 或者 cd~

④跳轉到指定目錄

             cd /echncms/lijl_bj1(根目錄下進入)

跳轉到指定目錄,從根目錄開始,目錄名稱前加“/”,當前目錄的子目錄寫名稱即可。

⑤返回進入此目錄之前所在的目錄

             cd –

clip_image010


4. pwd命令

使用“pwd”命令來查看“當前工作目錄”的完整路徑,每當你在終端進行操作時,都會有一個當前工作目錄,在不太確定當前位置時,可以使用pwd命令來查看當前目錄再文件系統裏的確切位置。

(1) 命令格式:pwd [選項]

(2) 命令功能:查看“當前工作目錄”的完整路徑

clip_image012

常用參數:一般情況下不使用任何參數,如果目錄是鏈接時,pwd –P 顯示出實際路徑,而非使用鏈接路徑。若當前路徑被刪除了,pwd顯示的仍是原路徑。


5. rm命令

該命令的功能是刪除一個目錄中的一個或多個文件或目錄,它也可以將某個目錄及其以下的所有文件及目錄均刪除,對於鏈接文件,只是刪除了鏈接,原有文件保持不變。

(1) 命令格式:rm [選項] 文件

(2) 命令功能:刪除指定目錄中的一個或多個文件或目錄,如果沒有使用-r選項,則rm不會刪除目錄,如果使用rm來刪除文件,通常仍可以將文件恢復原狀。

(3) 命令參數:

-f,--force忽略不存在的文件,從不給出提示(常用)

-i,--interactive 進行交互式地刪除(常用)

-r,-R,--recursive 指示rm將參數中列出的全部目錄和子目錄均遞歸地刪除(常用)

-v,--verbose 詳細顯示進行的步驟

(4) 命令實例:

①刪除文件file,系統會先詢問是否刪除,rm –i file,輸入y之後就會刪除

②強行刪除file,系統不再提示  rm –f file

clip_image014

③刪除任何.log文件,刪除前逐一詢問  rm –i *.log

④將test1子目錄及子目錄中所有檔案都刪除 rm –r test

⑤將test2子目錄及子目錄中所有檔案都刪除,並且不用一一詢問

     rm  –rf  test2(常用)

clip_image016

⑥刪除以-f開頭的文件

             rm -- -f


6. rmdir命令

rmdir是常用的命令,該命令的功能是刪除空目錄,一個目錄被刪除之前必須是空的。注意(rm –r dir命令可代替rmdir,但是有很大危險性),刪除某目錄時也必須對父目錄有寫權限。

(1) 命令格式:rmdir [選項]…目錄…

(2) 命令功能:該命令從一個目錄中刪除一個或多個子目錄項,刪除某目錄時也必須對父目錄有寫權限。

(3) 命令參數:

-p 遞歸刪除目錄dirname,當子目錄刪除後其父目錄爲空時,也一同被刪除,如果整個路徑被刪除或者由於某種原因保留部分路徑,則系統在標準輸出上顯示相應的信息。(常用)

-v,--verbose顯示指令執行過程

(4) 命令實例:

①rmdir不能刪除非空目錄 rmdir lijl_bj1,該命令不能直接刪除非目錄

②rmdir –p 當子目錄被刪除後使它也一併成爲空目錄的話,則順便一起刪除


7. mv命令

mv命令是move的縮寫,可以用來移動文件或者將文件改名(move (rename) files),是Linux系統下常用的命令,經常用來備份文件或者目錄。

(1) 命令格式:mv [選項] 源文件或目錄 目標文件或目錄

(2) 命令功能:視mv命令中第二個參數類型的不同(是目標文件還是目標目錄),mv命令將文件重命名或將其移至一個新的目錄中。當第二個參數類型是文件時,mv命令完成文件重命名,此時,源文件只能有一個(也可以是源目錄名),它將所給的源文件或目錄重命名爲給定的目標文件名。當第二個參數是已存在的目錄名時,源文件或目錄參數可以有多個,mv命令將各參數指定的源文件均移至目標目錄中。在跨文件系統移動文件時,mv先拷貝,再將原有文件刪除,而鏈接該文件的鏈接也將丟失。

(3) 命令參數:

-b :若需要覆蓋文件,則覆蓋前先行備份(常用)

-f : force強制的意思,如果目標文件已存在,不會詢問而直接覆蓋(常用)

-t : --target –directory,即指定mv的目標目錄,該選項適用於移動多個源文件到一個目錄的情況,此時目標目錄在前,源文件在後。

(4) 命令實例:

①文件改名:將文件test.log 改名爲test1.txt

             mv test.log test1.txt

clip_image018

②移動文件:將test1.log文件移至test3

             mv test1.log test3

③將文件log1.txt,log2.txt,log3.txt移至目錄test中

             mv log1.txt log2.txt log3.txt test

             mv –t /opt/soft/test/ log1.txt log2.txt log3.txt

④將文件file1改名爲file2,如果file2已經存在,則詢問是否覆蓋

             mv –i log1.txt log2.txt

⑤將文件file1改名爲file2,即時file2存在,也是直接覆蓋掉

             mv –f log3.txt log2.txt

log3.txt的內容直接覆蓋了log2.txt內容,-f這是個危險的選項,使用時候一定要保持頭腦清醒,一般情況下最好不用加上它。

⑥目錄的移動

             mv dir1 dir2

如果目錄dir2不存在,將目錄dir1改名爲dir2,否則將dir1移動到dir2中

⑦移動當前文件夾下的所有文件到上一級目錄

             mv * ../

⑧把當前目錄的一個子目錄裏的文件移動到另一個子目錄裏

             mv test3/*.txt test5


8.cp命令

cp命令用來複制文件或者目錄,是Linux系統中最常用的命令之一。一般情況下,shell會設置一個別名,在命令行復制文件時,如果目標文件已存在,就會詢問是否覆蓋,不管你是否使用參數-i,但如果是在shell腳本中執行cp時,沒有參數-i時不會詢問是否覆蓋,這說明命令行和shell腳本的執行方式有些不同。

(1) 命令格式: cp [選項]… [-T] 源 目的

或 cp [選項]… 源… 目錄

或 cp [選項]… -t 目錄 源…

(2) 命令功能:將源文件複製至目標文件,或將多個源文件複製至目標文件

(3) 命令參數:

-i ,--interactive 覆蓋前詢問(使前面的-n選項失效)

-n ,--no-clobber 不要覆蓋已存在的文件(使前面的-i選項失效)

-R,-r,--recursive 複製目錄及目錄內的所有項目(常用)

(4) 命令實例:

①複製單個文件到目標目錄,文件在目標文件中不存在

             cp log.log test5

clip_image020

在沒有帶-a參數時,兩個文件的時間是不一樣的,在帶來-a參數時,兩個文件的時間是一致的。

②目標文件存在時,會詢問是否覆蓋。

             cp log.log test5

目標文件存在時,會詢問是否覆蓋,這是因爲cp 是cp –i 的別名,目標文件存在時,即時加了-f標誌,也還會詢問是否覆蓋。

③複製整個目錄

             cp –a test3 test5

注意目標目錄存在與否結果是不一樣的,目標目錄存在時,整個源目錄被複制到目標目錄裏面。


9.touch命令

Linux的touch命令不常用,一般在使用make的時候可能會用到,用來修改文件時間戳,或者新建一個不存在的文件。

(1) 命令格式: touch [選項]…文件…

(2) 命令功能:touch命令參數可更改文檔或目錄的日期時間,包括存取時間和更改時間。

(3) 命令參數:

-a 或--time = atime--time =access或--time=use 只更改存取時間

-d 使用指定的日期時間,而非現在的時間

-m 或--time=mtime或--time=modify 只更改變動時間

-r 把指定文檔或目錄的日期時間,統統設成和參考文檔和目錄的日期時間相同

-t 使用指定的日期,而非現在的時間

(4) 常用實例:

①創建不存在的文件:

             touch log2015.log log2016.log

如果log2014.log不存在,則不創建文件

②更新log.log的時間和log2015.log時間戳相同

             touch –r log2015.log log.log

③設定文件的時間戳

             touch –t 201505191357.50 log.log


10. find命令

因爲Linux下面一切皆文件,經常需要搜索某些文件來編寫,所以對於linux來說find是一條很重要的命令。linux下面的find指令用於在目錄結構中搜索文件,並執行指定的操作。它提供了相當多的查找條件,功能很強大。在不指定查找目錄的情況下,find會在對整個系統進行遍歷。即使系統中含有網絡文件系統,find命令在該文件系統中同樣有效。在運行一個非常消耗資源的find命令時,很多人都傾向於把它放在後臺執行,因爲遍歷一個大的文件系統可能會花費很長的時間。

(1) 命令格式: find [查找目錄] [查找規則] [查找完後的操作]

(2) 命令功能:用於在文件樹中查找文件,並做相應的處理。

(3) 命令參數:

pathname:表示所要查找的目錄路徑,例如”.”表示當前目錄,”/”表示根目錄。

-print:將find找到的文件輸出到標準輸出。

-exec:對找到的文件執行exec這個參數所指定的shell命令,相應的形式爲:-exec command {} \; 將查到的文件進行command操作,”{}”就代替查到的文件。

①根據文件名查找:

find ./ -name file(常用)

clip_image022

②文件名通配符:

find ./ -name “file*”(常用)

clip_image024

“*”:通配任意的字符,可以是任何東西

③根據文件所屬用戶和組來查找(常用)

find ./ -user user

find ./ -group group

④根據文件類型查找(常用)

-type

f     // 普通文件

d     //目錄文件

l     //鏈接文件

b     //塊設備文件

c     //字符設備文件

p     //管道文件

s     //socket文件


文本文件操作命令


1.統計命令——wc

統計文件裏面有多少單詞,多少行,多少字符。

1.1 wc語法

# wc [-lwm]

選項與參數:

-l :僅列出行;

-w :僅列出多少字(英文單字);

-m :多少字符;

1.2 wc使用

#wc /etc/passwd40 45 1719 /etc/passwd

(40是行數,45是單詞數,1719是字節數)

wc的命令比較簡單使用,每個參數使用如下:

#wc -l /etc/passwd #統計行數,在對記錄數時,很常用

/etc/passwd #表示系統有40個賬戶

#wc -w /etc/passwd #統計單詞出現次數

/etc/passwd

#wc -m /etc/passwd #統計文件的字節數


2.查找命令——grep

2.1 grep語法

Linux系統中grep命令是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹 配的行打印出來。grep全稱是Global Regular Expression Print,表示全局正則表達式版本,它的使用權限是所有用戶。

grep [options]
[options]主要參數:
  -c:只輸出匹配行的計數。
  -I:不區分大 小寫(只適用於單字符)。
  -h:查詢多文件時不顯示文件名。
  -l:查詢多文件時只輸出包含匹配字符的文件名。
  -n:顯示匹配行及 行號。
  -s:不顯示不存在或無匹配文本的錯誤信息。
  -v:顯示不包含匹配文本的所有行。
pattern正則表達式主要參數:
\: 忽略正則表達式中特殊字符的原有含義。
^:匹配正則表達式的開始行。
$: 匹配正則表達式的結束行。
\<:從匹配正則表達 式的行開始。
\>:到匹配正則表達式的行結束。
[ ]:單個字符,如[A]即A符合要求 。
[ - ]:範圍,如[A-Z],即A、B、C一直到Z都符合要求 。
  。:所有的單個字符。
* :有字符,長度可以爲0。

2.2 grep簡單使用

  顯示所有以d開頭的文件中包含 test的行:

$ grep 'test' d*

  顯示在aa,bb,cc文件中匹配test的行:

$ grep 'test' aa bb cc

  輸出匹配行的計數:

grep -c "48" data.doc #輸出文檔中含有48字符的行數

  顯示匹配行和行數:

grep -n "48" data.doc #顯示所有匹配48的行和行號

  顯示非匹配的行:

grep -vn "48" data.doc #輸出所有不包含48的行

  大小寫敏感:

grep -i "ab" data.doc #輸出所有含有ab或Ab的字符串的行


3. cat命令

cat命令的用途是連接文件或標準輸入並打印,這個命令常用來顯示文件內容,或者將幾個文件連接起來顯示,或者從標準輸入讀取內容並顯示,它常與重定向符號配合使用。

3.1     命令格式:cat [選項] [文件]…

3.2     命令功能:cat主要有三大功能:

①一次顯示整個文件:cat filename

②從鍵盤創建一個文件:cat>filename只能創建新文件,不能編輯已有文件

③將幾個文件合併爲一個文件:cat file1 file2>file

3.3     命令參數:

-b,--number-nonblank 對非空輸出行編號

-n,--number                對輸出的所有行編號,由1開始對所有輸出的行數編號

-T,--show-tabs            將跳格字符顯示爲^I

3.4     使用實例:

①把log2012.log的文件內容加上行號後輸入log2013.log這個文件

           cat –n log2012.log log2013.log

②把log2012.log和log2013.log的文件內容加上行號(空白行不加)之後將內容附加到log.log裏。

           cat –b log2012.log log2013.log log.log

③把log2012.log的文件內容加上行號後輸入log.log這個文件裏

           cat –n log2012.log>log.log


資料來源:

https://www.cnblogs.com/carrie-chen/p/5869299.html

https://www.cnblogs.com/maybe2030/p/5325530.html

https://www.cnblogs.com/yhjoker/p/7568680.html

https://www.cnblogs.com/yolanda-lee/p/4544573.html

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