你一定要知道的关于Linux文件目录操作的12个常用命令
你一定要知道的關(guān)于Linux文件目錄操作的12個常用命令
轉(zhuǎn)自:http://www.cnblogs.com/yolanda-lee/p/4544573.html
寫在前面:
1,《你一定要知道的關(guān)于Linux文件目錄操作的12個常用命令》是樓主收集的關(guān)于Linux文件目錄操作最常用的命令,包括文件或目錄的新建、拷貝、移動、刪除、查看等,是開發(fā)人員操作Linux系統(tǒng)的常用命令,所以你一定要知道。
2,《你一定要知道的關(guān)于Linux文件目錄操作的12個常用命令》適合初學(xué)者,對于Linux大神的請繞過,不過歡迎一起討論學(xué)習(xí)!
3,此次收集,多謝來自http://www.cnblogs.com/peida/archive/2012/10/23/2734829.html的分享,若需要更詳細(xì)的資料請關(guān)注。
?
下面開始一起學(xué)習(xí)吧:
1, mkdir命令
mkdir用來創(chuàng)建指定名稱的目錄,要求創(chuàng)建目錄的用戶在當(dāng)前目錄中具有寫權(quán)限,并且指定的目錄名不能是當(dāng)前目錄中已有的目錄。
(1)???? 命令格式:mkdir [選項] 目錄
(2)???? 命令功能:在指定位置創(chuàng)建指定文件名命名的文件夾或目錄,要創(chuàng)建文件夾或目錄的用戶必須對所創(chuàng)建的文件夾的父文件夾具有寫權(quán)限,且同一個目錄下不能有重名的。
(3)???? 命令參數(shù):
-m,--mode模式 設(shè)定權(quán)限<模式>(類似chmod),而不是rwxrwxrwx
-p,--parents可以是一個路徑的名稱,此時若路徑中的某些目錄不存在,加上此選項后系統(tǒng)將自動建立好那些尚不存在的目錄,即一次可以建立多個目錄
-v,--verbose創(chuàng)建當(dāng)前新目錄或文件時顯示信息,如“已創(chuàng)建目錄test6”
(4)???? 命令實(shí)例:
①創(chuàng)建一個空目錄
???????????? mkdir lijl_bj1
②遞歸創(chuàng)建多個目錄
???????????? mkdir –p ./lijl_bj1/test(./表示當(dāng)前目錄,../表示上級目錄,/表示根目錄)
③創(chuàng)建權(quán)限為777的目錄
???????????? mkdir –m 777 test777
④創(chuàng)建新目錄顯示信息
???????????? mkdir –v test
⑤創(chuàng)建項目的目錄結(jié)構(gòu)
mkdir –vp
src/{com/sitech/{admin/{entity/,dao/,service,controller},common/util/},config/}
(5)???? 注意事項:
最后一個實(shí)例⑤對順序是有要求的,即在-vp時才表示-v –p操作,而若是-pv則在上述語句中會默認(rèn)為創(chuàng)建-vp目錄。
2, ls命令
缺省下用來打印當(dāng)前目錄的清單,如果ls指定其他目錄,那么就會顯示指定目錄的文件及文件夾清單。通過ls命令不僅可以查看linux文件夾包含的文件,而且可以查看文件權(quán)限(包括目錄、文件夾、文件)、查看目錄信息等。
(1)???? 命令格式:ls [選項] [目錄名]
(2)???? 命令功能:列出目標(biāo)目錄中所有的子目錄和文件
(3)???? 命令參數(shù):
-a,列出目錄下的所有文件,包括以.開頭的隱含文件
-c 配合-lt根據(jù)ctime排序及根據(jù)ctime(文件狀態(tài)最后更改的時間)
? 配合-l 顯示ctime但根據(jù)名稱排序
-l 除了文件名之外,還將文件的權(quán)限、所有者、文件大小等信息詳細(xì)列出來
-t 以文件的修改順序排序
-u 配合-lt顯示訪問時間,而且依據(jù)訪問時間排序
?? ? 配合-l 顯示訪問時間,但根據(jù)名稱排序
-v 依據(jù)版本進(jìn)行排序
-x 逐行列出項目,而不是逐欄列出
-X 根據(jù)擴(kuò)展名進(jìn)行排序
-1 每行只列出一個文件
-F 可以在顯示子目錄的時候在它的文件名之后加一個“/”,而文件后面的“*”表示這是一個可執(zhí)行程序
(4)???? 常用實(shí)例:
①列出 /lijl_bj1/com/src文件夾下的所有文件和目錄的詳細(xì)情況
進(jìn)入lijl_bj1目錄,ls –l –R(或-lR) src
②列出當(dāng)前目錄中所有以“s”開頭的所有文件目錄的信息,
?????????? ls –l s*
③只列出文件下的子目錄:
???? ??????????????????????? ls -F ./src |grep /$ 列出src目錄下面的子目錄
?????????????????????????????????? 結(jié)果:com/,config/
④列出目前工作目錄下所有檔案及目錄;目錄于名稱后加"/",?可執(zhí)行檔案名稱后加"*"?
?????????? ls –AF
3, cd命令
cd命令是Linux里面最基本的命令,很多其他命令都是建立在它的基礎(chǔ)之上的
(1)???? 命令格式:cd [目錄名]
(2)???? 命令功能:切換當(dāng)前目錄至dirName
(3)???? 常用范例:
①進(jìn)入系統(tǒng)根目錄
???????????? cd /
②進(jìn)入當(dāng)前目錄的上一級目錄:cd ..或者cd ..//
③進(jìn)入當(dāng)前用戶的主目錄
???????????? cd 或者 cd~
④跳轉(zhuǎn)到指定目錄
???????????? cd /echncms/lijl_bj1(根目錄下進(jìn)入)
跳轉(zhuǎn)到指定目錄,從根目錄開始,目錄名稱前加“/”,當(dāng)前目錄的子目錄寫名稱即可。
⑤返回進(jìn)入此目錄之前所在的目錄
???????????? cd –
⑥把上個命令的參數(shù)作為cd參數(shù)使用
???????????? cd !$
(4)???? 注意事項:
跳轉(zhuǎn)到指定目錄,從根目錄開始,目錄名稱前加“/”,當(dāng)前目錄的子目錄寫名稱
4, pwd命令
使用“pwd”命令來查看“當(dāng)前工作目錄”的完整路徑,每當(dāng)你在終端進(jìn)行操作時,都會有一個當(dāng)前工作目錄,在不太確定當(dāng)前位置時,可以使用pwd命令來查看當(dāng)前目錄再文件系統(tǒng)里的確切位置。
(1)???? 命令格式:pwd [選項]
(2)???? 命令功能:查看“當(dāng)前工作目錄”的完整路徑
常用參數(shù):一般情況下不使用任何參數(shù),如果目錄是鏈接時,pwd –P 顯示出實(shí)際路徑,而非使用鏈接路徑。若當(dāng)前路徑被刪除了,pwd顯示的仍是原路徑。
5, rm命令
該命令的功能是刪除一個目錄中的一個或多個文件或目錄,它也可以將某個目錄及其以下的所有文件及目錄均刪除,對于鏈接文件,只是刪除了鏈接,原有文件保持不變。
(1)???? 命令格式:rm [選項] 文件
(2)???? 命令功能:刪除指定目錄中的一個或多個文件或目錄,如果沒有使用-r選項,則rm不會刪除目錄,如果使用rm來刪除文件,通常仍可以將文件恢復(fù)原狀。
(3)???? 命令參數(shù):
-f,--force忽略不存在的文件,從不給出提示
-i,--interactive 進(jìn)行交互式地刪除
-r,-R,--recursive 指示rm將參數(shù)中列出的全部目錄和子目錄均遞歸地刪除
-v,--verbose 詳細(xì)顯示進(jìn)行的步驟
(4)???? 命令實(shí)例:
①刪除文件file,系統(tǒng)會先詢問是否刪除,rm –i log.log,輸入y之后就會刪除
②強(qiáng)行刪除file,系統(tǒng)不再提示? 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,但是有很大危險性),刪除某目錄時也必須對父目錄有寫權(quán)限。
(1)???? 命令格式:rmdir [選項]…目錄…
(2)???? 命令功能:該命令從一個目錄中刪除一個或多個子目錄項,刪除某目錄時也必須對父目錄有寫權(quán)限。
(3)???? 命令參數(shù):
-p 遞歸刪除目錄dirname,當(dāng)子目錄刪除后其父目錄為空時,也一同被刪除,如果整個路徑被刪除或者由于某種原因保留部分路徑,則系統(tǒng)在標(biāo)準(zhǔn)輸出上顯示相應(yīng)的信息。
-v,--verbose顯示指令執(zhí)行過程
(4)???? 命令實(shí)例:
①rmdir不能刪除非空目錄 rmdir lijl_bj1,該命令不能直接刪除非目錄
②rmdir –p 當(dāng)子目錄被刪除后使它也一并成為空目錄的話,則順便一起刪除
7, mv命令
mv命令是move的縮寫,可以用來移動文件或者將文件改名(move (rename) files),是Linux系統(tǒng)下常用的命令,經(jīng)常用來備份文件或者目錄。
(1)???? 命令格式:mv [選項] 源文件或目錄 目標(biāo)文件或目錄
(2)???? 命令功能:視mv命令中第二個參數(shù)類型的不同(是目標(biāo)文件還是目標(biāo)目錄),mv命令將文件重命名或?qū)⑵湟浦烈粋€新的目錄中。當(dāng)?shù)诙€參數(shù)類型是文件時,mv命令完成文件重命名,此時,源 ? ? ? ? ? ? ? ? ? ? ? ? ? 文件只能有一個(也可以是源目錄名),它將所給的源文件或目錄重命名為給定的目標(biāo)文件名。當(dāng)?shù)诙€參數(shù)是已存在的目錄名時,源文件或目錄參數(shù)可以有多個,mv命令將各參數(shù)指 ? ? ? ? ? ? ? ? ? ? ? ? ? ? 定的源文件均移至目標(biāo)目錄中。在跨文件系統(tǒng)移動文件時,mv先拷貝,再將原有文件刪除,而鏈接該文件的鏈接也將丟失。
(3)???? 命令參數(shù):
-b :若需要覆蓋文件,則覆蓋前先行備份
-f : force強(qiáng)制的意思,如果目標(biāo)文件已存在,不會詢問而直接覆蓋
-i : 若目標(biāo)文件已經(jīng)存在時,就會詢問是否覆蓋。
-t : --target –directory,即指定mv的目標(biāo)目錄,該選項適用于移動多個源文件到一個目錄的情況,此時目標(biāo)目錄在前,源文件在后。
(4)???? 命令實(shí)例:
①文件改名:將文件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已經(jīng)存在,則詢問是否覆蓋
???????????? mv –i log1.txt log2.txt
⑤將文件file1改名為file2,即時file2存在,也是直接覆蓋掉
???????????? mv –f log3.txt log2.txt
log3.txt的內(nèi)容直接覆蓋了log2.txt內(nèi)容,-f這是個危險的選項,使用時候一定要保持頭腦清醒,一般情況下最好不用加上它。
⑥目錄的移動
???????????? mv dir1 dir2
如果目錄dir2不存在,將目錄dir1改名為dir2,否則將dir1移動到dir2中
⑦移動當(dāng)前文件夾下的所有文件到上一級目錄
???????????? mv * ../
⑧把當(dāng)前目錄的一個子目錄里的文件移動到另一個子目錄里
???????????? mv test3/*.txt test5
⑨文件被覆蓋前做簡單備份,前面加參數(shù)-b
???????????? mv log1.txt –b log2.txt
說明:-b不接受參數(shù),mv會去讀取環(huán)境變量VERSION_CONTROL來作為備份策略。--backup該選項指定如果目標(biāo)文件存在時的動作,共有四種備份策略:
1.CONTROL=none或off?:?不備份。
2.CONTROL=numbered或t:數(shù)字編號的備份
3.CONTROL=existing或nil:如果存在以數(shù)字編號的備份,則繼續(xù)編號備份m+1...n:
執(zhí)行mv操作前已存在以數(shù)字編號的文件log2.txt.~1~,那么再次執(zhí)行將產(chǎn)生log2.txt~2~,以次類推。如果之前沒有以數(shù)字編號的文件,則使用下面講到的簡單備份。
4.CONTROL=simple或never:使用簡單備份:在被覆蓋前進(jìn)行了簡單備份,簡單備份只能有一份,再次被覆蓋時,簡單備份也會被覆蓋。
mv不會創(chuàng)建新目錄,只能將源目錄或源文件移入已創(chuàng)建好的目錄,若目標(biāo)文件或文件夾不存在時,將只會是改名,而不是移動文件或目錄
8, cp命令
cp命令用來復(fù)制文件或者目錄,是Linux系統(tǒng)中最常用的命令之一。一般情況下,shell會設(shè)置一個別名,在命令行復(fù)制文件時,如果目標(biāo)文件已存在,就會詢問是否覆蓋,不管你是否使用參數(shù)-i,但如果是在shell腳本中執(zhí)行cp時,沒有參數(shù)-i時不會詢問是否覆蓋,這說明命令行和shell腳本的執(zhí)行方式有些不同。
(1)???? 命令格式: cp [選項]… [-T] 源 目的
? ? ? ? ? ? ? ? ? ? ? ? ? ?或 cp [選項]… 源… 目錄
? ? ? ? ? ? ? ? ? ? ? ? ? ?或 cp [選項]… -t 目錄? 源…
(2)???? 命令功能:將源文件復(fù)制至目標(biāo)文件,或?qū)⒍鄠€源文件復(fù)制至目標(biāo)文件
(3)???? 命令參數(shù):
-i ,--interactive 覆蓋前詢問(使前面的-n選項失效)
-n ,--no-clobber 不要覆蓋已存在的文件(使前面的-i選項失效)
-R,-r,--recursive 復(fù)制目錄及目錄內(nèi)的所有項目
(4)???? 命令實(shí)例:
①復(fù)制單個文件到目標(biāo)目錄,文件在目標(biāo)文件中不存在
???????????? cp log.log test5
在沒有帶-a參數(shù)時,兩個文件的時間是不一樣的,在帶來-a參數(shù)時,兩個文件的時間是一致的。
②目標(biāo)文件存在時,會詢問是否覆蓋。
???????????? cp log.log test5
目標(biāo)文件存在時,會詢問是否覆蓋,這是因為cp 是cp –i 的別名,目標(biāo)文件存在時,即時加了-f標(biāo)志,也還會詢問是否覆蓋。
③復(fù)制整個目錄
???????????? cp –a test3 test5
注意目標(biāo)目錄存在與否結(jié)果是不一樣的,目標(biāo)目錄存在時,整個源目錄被復(fù)制到目標(biāo)目錄里面。
④復(fù)制的log.log建立一個鏈接檔案log_link.log
???????????? cp –s log.log log_link.log
⑤那個log_link.log是由-s的參數(shù)造成的,建立的是一個【快捷方式】,所以會看到在文件的最右邊,會顯示這個文件是鏈接到哪里去的。
9, touch命令
Linux的touch命令不常用,一般在使用make的時候可能會用到,用來修改文件時間戳,或者新建一個不存在的文件。
(1)???? 命令格式: touch [選項]…文件…
(2)???? 命令功能:touch命令參數(shù)可更改文檔或目錄的日期時間,包括存取時間和更改時間。
(3)???? 命令參數(shù):
-a 或--time = atime--time =access或--time=use 只更改存取時間
-c 或--no-create 不建立任何文檔
-d 使用指定的日期時間,而非現(xiàn)在的時間
-m 或--time=mtime或--time=modify 只更改變動時間
-r 把指定文檔或目錄的日期時間,統(tǒng)統(tǒng)設(shè)成和參考文檔和目錄的日期時間相同
-t 使用指定的日期,而非現(xiàn)在的時間
(4)???? 常用實(shí)例:
①創(chuàng)建不存在的文件:
???????????? touch log2015.log log2016.log
如果log2014.log不存在,則不創(chuàng)建文件
②更新log.log的時間和log2015.log時間戳相同
???????????? touch –r log2015.log log.log
③設(shè)定文件的時間戳
???????????? touch –t 201505191357.50 log.log
-t??time?使用指定的時間值?time?作為指定文件相應(yīng)時間戳記的新值.此處的?time規(guī)定為如下形式的十進(jìn)制數(shù):??????
??[[CC]YY]MMDDhhmm[.SS]?????
??這里,CC為年數(shù)中的前兩位,即”世紀(jì)數(shù)”;YY為年數(shù)的后兩位,即某世紀(jì)中的年數(shù).如果不給出CC的值,則touch???將把年數(shù)CCYY限定在1969--2068之內(nèi).MM為月數(shù),DD為天將把年數(shù)CCYY限定在1969--2068之內(nèi).MM為月數(shù),DD為天數(shù),hh?為小時數(shù)(幾點(diǎn)),mm為分鐘數(shù),SS為秒數(shù).此處秒的設(shè)定范圍是0--61,這樣可以處理閏秒.這些數(shù)字組成的時間是環(huán)境變量TZ指定的時區(qū)中的一個時?間.由于系統(tǒng)的限制,早于1970年1月1日的時間是錯誤的。
10,??????????? cat命令
cat命令的用途是連接文件或標(biāo)準(zhǔn)輸入并打印,這個命令常用來顯示文件內(nèi)容,或者將幾個文件連接起來顯示,或者從標(biāo)準(zhǔn)輸入讀取內(nèi)容并顯示,它常與重定向符號配合使用。
(1)???? 命令格式:cat [選項] [文件]…
(2)???? 命令功能:cat主要有三大功能:
①一次顯示整個文件:cat filename
②從鍵盤創(chuàng)建一個文件:cat>filename只能創(chuàng)建新文件,不能編輯已有文件
③將幾個文件合并為一個文件:cat file1 file2>file
(3)???? 命令參數(shù):
-A,--show-all? 等價于-vET
-b,--number-nonblank? 對非空輸出行編號
-e ??????????????????????????????????????? 等價于 –vE
-E,--show-ends?????????????????? 在每行結(jié)束處顯示$
-n,--number??????????????????????? 對輸出的所有行編號,由1開始對所有輸出的行數(shù)編號
-s,--squeeze-blank???????????? 有連續(xù)兩行以上的空白行,就代換為一行的空白行
-t ???????????????????????????????????????? 與-vT等價
-T,--show-tabs??????????????????? 將跳格字符顯示為^I
(4)???? 使用實(shí)例:
①把log2012.log的文件內(nèi)容加上行號后輸入log2013.log這個文件
?????????? cat –n log2012.log log2013.log
②把log2012.log和log2013.log的文件內(nèi)容加上行號(空白行不加)之后將內(nèi)容附加到log.log里。
?????????? cat –b log2012.log log2013.log log.log
③把log2012.log的文件內(nèi)容加上行號后輸入log.log這個文件里
?????????? cat –n log2012.log>log.log
④注意tac是反向列示,tac是將cat反過來,所以它的功能就跟cat相反,cat是由第一行到最后一行連續(xù)顯示在熒幕上,而tac則是由最后一行到第一行反向在銀幕上顯示。
11,??????????? more命令
more命令功能類似cat,cat命令是整個文件的內(nèi)容從上到下顯示在屏幕上,more會一起一頁一頁的顯示方便使用者逐頁閱讀,而最基本的指令就是按空白鍵(space)就往下一頁顯示,按b鍵就會往回(back)一頁顯示,而且還有搜尋字串的功能,more命令從前向后讀取文件,因此在啟動時就加載整個文件。
(1)???? 命令格式:
? ? ? ? ? ? ? ? ? ? ? ? more [-dlfpcsu][-num][+/pattern][+linenum][file…]
(2)???? 命令功能:more命令和cat的功能一樣都是查看文件里的內(nèi)容,但有所不同的是more可以按頁來查看文件的內(nèi)容,還支持直接跳轉(zhuǎn)行等功能。
(3)???? 命令參數(shù):
+n??? 從第n行開始顯示
-n???? 定義屏幕大小為n行
+/pattern????????????????? 在每個檔案顯示前搜尋該字串(pattern),然后從該字串前兩行之后開始顯示
-c???? 從頂部清屏,然后顯示
-p???? 通過清除窗口而不是滾屏來對文件進(jìn)行換頁,與-c選項相似
(4)???? 常用操作命令:
Enter 向下n行,需要定義,默認(rèn)為1行
Ctrl+F、空格鍵????????????????? 向下滾動一屏
Ctrl+B????????????????? 返回上一屏
=?????????????????????????? 輸出當(dāng)前行的行號
:f???????????????? 輸出文件名和當(dāng)前行的行號
V????????????????????????? 調(diào)用vi編輯器
q?????????????????????????? 退出more
(5)???? 常用實(shí)例:
①顯示文件中從第3行起的內(nèi)容
?????????? more +3 log2012.log
②從文件中查找第一個出現(xiàn)”day3”字符串的行,并從該處前兩行開始顯示輸出
?????????? more +/day3 log2012.log
③設(shè)定每屏顯示行數(shù)
?????????? more -5 log2012.log
最下面顯示了該屏展示的內(nèi)容占文件總行數(shù)的比例,按Ctrl+F或者空格鍵將會顯示下一屏5條內(nèi)容,百分比也會跟著變化。
④列一個目錄下的文件,由于內(nèi)容太多,我們應(yīng)該學(xué)會用more來分頁,這得和管道|結(jié)合起來
ls –l | more -5
每頁顯示5個文件信息,按Ctrl+F或者空格鍵將會顯示下5條文件信息
12,??????????? tail命令
tail命令從指定點(diǎn)開始將文件寫到標(biāo)準(zhǔn)輸出流,使用tail命令的-f選項可以方便的查閱正在改變的日志文件,tail –f filename會把filename里最尾部的內(nèi)容顯示在屏幕上,并且不但刷新,使你看到最新的文件內(nèi)容。(經(jīng)常用來在查看服務(wù)器上的日志文件)
(1)???? 命令格式:??????? tail?? [必要參數(shù)][選擇參數(shù)][文件]
(2)???? 命令功能:???????
? ? ? ? ? ? ?用于顯示指定文件末尾內(nèi)容,不指定文件時,作為輸入信息進(jìn)行處理,常用查看日志文件。
(3)???? 命令參數(shù):
-f?????????????? 循環(huán)讀取
-q????????????? 不顯示處理信息
-v????????????? 系那是詳細(xì)的處理信息
-c<數(shù)目>???????? 顯示的字節(jié)數(shù)
-n<行數(shù)>????????????????? 顯示行數(shù)
(4)???? 命令實(shí)例:
①顯示文件末尾內(nèi)容
???????????? tail –n 5 log2014.log 顯示文件最后5行的內(nèi)容
②循環(huán)查看文件內(nèi)容
?????????????tail?? -f????? test.log
③從第5行開始顯示文件
???????????? tail –n +5 log2014.log
總結(jié)
以上是生活随笔為你收集整理的你一定要知道的关于Linux文件目录操作的12个常用命令的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: STM32----摸石头过河系列(七)
- 下一篇: 奇怪。短短几天,他们的论文怎么会有这么大