你一定要知道的關於Linux文件目錄操作的12個常用命令

原文地址爲:你一定要知道的關於Linux文件目錄操作的12個常用命令

寫在前面:

1,《你一定要知道的關於Linux文件目錄操作的12個常用命令》是樓主收集的關於Linux文件目錄操作最常用的命令,包括文件或目錄的新建、拷貝、移動、刪除、查看等,是開發人員操作Linux系統的常用命令,所以你一定要知道。

2,《你一定要知道的關於Linux文件目錄操作的12個常用命令》適合初學者,對於Linux大神的請繞過,不過歡迎一起討論學習!

3,此次收集,多謝來自http://www.cnblogs.com/peida/archive/2012/10/23/2734829.html的分享,若需要更詳細的資料請關注。

 

下面開始一起學習吧:     

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 以文件的修改順序排序

-u 配合-lt顯示訪問時間,而且依據訪問時間排序

     配合-l 顯示訪問時間,但根據名稱排序

-v 依據版本進行排序

-x 逐行列出項目,而不是逐欄列出

-X 根據擴展名進行排序

-1 每行只列出一個文件

-F 可以在顯示子目錄的時候在它的文件名之後加一個“/”,而文件後面的“*”表示這是一個可執行程序

(4)     常用實例:

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

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

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

           ls –l s*

③只列出文件下的子目錄:

                             ls -F ./src |grep /$ 列出src目錄下面的子目錄

                                   結果:com/,config/

④列出目前工作目錄下所有檔案及目錄;目錄於名稱後加"/", 可執行檔案名稱後加"*" 

           ls –AF

3, cd命令

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

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

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

(3)     常用範例:

①進入系統根目錄

             cd /

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

③進入當前用戶的主目錄

             cd 或者 cd~

④跳轉到指定目錄

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

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

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

             cd –

⑥把上個命令的參數作爲cd參數使用

             cd !$

(4)     注意事項:

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

4, pwd命令

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

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

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

常用參數:一般情況下不使用任何參數,如果目錄是鏈接時,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 log.log,輸入y之後就會刪除

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

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

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

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

     rm  –rf  test2(常用)

⑥刪除以-f開頭的文件

             rm -- -f

⑦自定義回收站功能:

myrm(){ D=/tmp/$(date +%Y%m%d%H%M%S); mkdir –p $D; mv “$@” $D && echo “moved to $D ok”; }

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強制的意思,如果目標文件已存在,不會詢問而直接覆蓋

-i : 若目標文件已經存在時,就會詢問是否覆蓋。

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

(4)     命令實例:

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

             mv test.log test1.txt

②移動文件:將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

⑨文件被覆蓋前做簡單備份,前面加參數-b

             mv log1.txt –b log2.txt

說明:-b不接受參數,mv會去讀取環境變量VERSION_CONTROL來作爲備份策略。--backup該選項指定如果目標文件存在時的動作,共有四種備份策略:

1.CONTROL=none或off : 不備份。

2.CONTROL=numbered或t:數字編號的備份

3.CONTROL=existing或nil:如果存在以數字編號的備份,則繼續編號備份m+1...n:

執行mv操作前已存在以數字編號的文件log2.txt.~1~,那麼再次執行將產生log2.txt~2~,以次類推。如果之前沒有以數字編號的文件,則使用下面講到的簡單備份。

4.CONTROL=simple或never:使用簡單備份:在被覆蓋前進行了簡單備份,簡單備份只能有一份,再次被覆蓋時,簡單備份也會被覆蓋。

mv不會創建新目錄,只能將源目錄或源文件移入已創建好的目錄,若目標文件或文件夾不存在時,將只會是改名,而不是移動文件或目錄

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

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

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

             cp log.log test5

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

③複製整個目錄

             cp –a test3 test5

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

④複製的log.log建立一個鏈接檔案log_link.log

             cp –s log.log log_link.log

⑤那個log_link.log是由-s的參數造成的,建立的是一個【快捷方式】,所以會看到在文件的最右邊,會顯示這個文件是鏈接到哪裏去的。

9, touch命令

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

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

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

(3)     命令參數:

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

-c 或--no-create 不建立任何文檔

-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

-t  time 使用指定的時間值 time 作爲指定文件相應時間戳記的新值.此處的 time規定爲如下形式的十進制數:      

  [[CC]YY]MMDDhhmm[.SS]     

  這裏,CC爲年數中的前兩位,即”世紀數”;YY爲年數的後兩位,即某世紀中的年數.如果不給出CC的值,則touch   將把年數CCYY限定在1969--2068之內.MM爲月數,DD爲天將把年數CCYY限定在1969--2068之內.MM爲月數,DD爲天數,hh 爲小時數(幾點),mm爲分鐘數,SS爲秒數.此處秒的設定範圍是0--61,這樣可以處理閏秒.這些數字組成的時間是環境變量TZ指定的時區中的一個時 間.由於系統的限制,早於1970年1月1日的時間是錯誤的。

10,            cat命令

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

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

(2)     命令功能:cat主要有三大功能:

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

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

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

(3)     命令參數:

-A,--show-all  等價於-vET

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

-e                                         等價於 –vE

-E,--show-ends                   在每行結束處顯示$

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

-s,--squeeze-blank             有連續兩行以上的空白行,就代換爲一行的空白行

-t                                          與-vT等價

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

(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

注意tac是反向列示,tac是將cat反過來,所以它的功能就跟cat相反,cat是由第一行到最後一行連續顯示在熒幕上,而tac則是由最後一行到第一行反向在銀幕上顯示。

11,            more命令

more命令功能類似cat,cat命令是整個文件的內容從上到下顯示在屏幕上,more會一起一頁一頁的顯示方便使用者逐頁閱讀,而最基本的指令就是按空白鍵(space)就往下一頁顯示,按b鍵就會往回(back)一頁顯示,而且還有搜尋字串的功能,more命令從前向後讀取文件,因此在啓動時就加載整個文件。

(1)     命令格式:

                        more [-dlfpcsu][-num][+/pattern][+linenum][file…]

(2)     命令功能:more命令和cat的功能一樣都是查看文件裏的內容,但有所不同的是more可以按頁來查看文件的內容,還支持直接跳轉行等功能。

(3)     命令參數:

+n    從第n行開始顯示

-n     定義屏幕大小爲n行

+/pattern                  在每個檔案顯示前搜尋該字串(pattern),然後從該字串前兩行之後開始顯示

-c     從頂部清屏,然後顯示

-p     通過清除窗口而不是滾屏來對文件進行換頁,與-c選項相似

(4)     常用操作命令:

Enter 向下n行,需要定義,默認爲1行

Ctrl+F、空格鍵                  向下滾動一屏

Ctrl+B                  返回上一屏

=                           輸出當前行的行號

:f                 輸出文件名和當前行的行號

V                          調用vi編輯器

q                           退出more

(5)     常用實例:

①顯示文件中從第3行起的內容

           more +3 log2012.log

②從文件中查找第一個出現”day3”字符串的行,並從該處前兩行開始顯示輸出

           more +/day3 log2012.log

③設定每屏顯示行數

           more -5 log2012.log

最下面顯示了該屏展示的內容佔文件總行數的比例,按Ctrl+F或者空格鍵將會顯示下一屏5條內容,百分比也會跟着變化。

④列一個目錄下的文件,由於內容太多,我們應該學會用more來分頁,這得和管道|結合起來

ls –l | more -5

每頁顯示5個文件信息,按Ctrl+F或者空格鍵將會顯示下5條文件信息

12,            tail命令

tail命令從指定點開始將文件寫到標準輸出流,使用tail命令的-f選項可以方便的查閱正在改變的日誌文件,tail –f filename會把filename裏最尾部的內容顯示在屏幕上,並且不但刷新,使你看到最新的文件內容。(經常用來在查看服務器上的日誌文件)

(1)     命令格式:        tail   [必要參數][選擇參數][文件]

(2)     命令功能:       

             用於顯示指定文件末尾內容,不指定文件時,作爲輸入信息進行處理,常用查看日誌文件。

(3)     命令參數:

-f               循環讀取

-q              不顯示處理信息

-v              系那是詳細的處理信息

-c<數目>         顯示的字節數

-n<行數>                  顯示行數

(4)     命令實例:

①顯示文件末尾內容

             tail –n 5 log2014.log 顯示文件最後5行的內容

②循環查看文件內容

             tail   -f      test.log

③從第5行開始顯示文件

             tail –n +5 log2014.log

 好了,朋友們,到了這裏,我們的12個常用命令就介紹完了,有興趣地可以仔細看看,一定會學到不少東西的!


轉載請註明本文地址:你一定要知道的關於Linux文件目錄操作的12個常用命令
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章