Linux下關於文件&&目錄操作的命令小結
一、文件操作命令
1.1 查看文件
Linux下查看文件的命令有很多,下面列出的幾個是幾乎所有Linux發行版中都帶有的命令,他們各有特點,適用於不同的場合。
cat [filename] , 查看整個文件,適合小文件(如果看大文件,只能看到屏幕飛速的刷……一瞬間就到尾部了)
head [filename],查看文件的首部【默認前10行,可以用-num 選項指定顯示的行數】
tail [filename] , 查看文件的尾部【默認尾10行,可以用-num 選項指定顯示的行數】
more [filename],分段查看文件,適合大文件【輸入命令後先顯示文件的前面一部分,屏幕下方顯示當前閱讀的百分比,形如:--More--(18%);然後按空格鍵翻到下一屏,或按回車鍵滾到下一行】
view [filename],vi的只讀版本,使用vi的命令進行翻頁等操作
上述命令的參數都可以有多個,以達到同時(或依次)查看多個文件的目的。當操作系統為CentOS 5.2時,若輸入參數有多個,則
cat命令 依次顯示多個文件,中間沒有任何間隔符
head命令 依次顯示多個文件的首部,每個文件以 ==> filename <== 開頭【UNIX系統據說是 = = > filename < + = =】
tail命令 依次顯示多個文件的尾部,每個文件以 ==> filename <== 開頭【UNIX系統據說只能使用單參數】
more命令 依次分段顯示多個文件,每個文件以::::::::::::::(\r)filename(\r)::::::::::::::開頭【且每個文件結束後,下方的百分比提示變成:--More--(Next file: filename2 );繼續翻屏或滾行後,開始顯示新文件】
1.2 創建(空白)文件
廣義上說,大部分命令其實都可以創建文件,當他們通過 >> 或 >(輸出重定向操作符)將自己的輸出信息重定向到一個不存在的文件時,系統就會自動幫助創建該文件。不過這樣得到的文件基本都是有內容的,不是所以,下面要介紹的幾個命令,都可以創建我們通常意義上所說的空白新文件。
(1)不帶-c選項的touch命令
格式:touch [filename]
參數,filename 是待創建新文件的路徑加文件名,當你的目的是創建新文件時,它不應與同路徑下其他文件重名【若位於當前目錄下,則無需指定路徑】
例如,在當前目錄下創建一個名為test1的新文件可以使用,
touch tes1
補充:touch命令原本的用途是用來修改文件的訪問時間、修改時間,當目標文件不存在時,它的作用變成創建新文件。使用-c選項可以禁止它創建新文件。
(2)vi(m)命令,並在vi(m)裡面使用:wq保存
格式:vim [filename] 或 vi [filename]
參數,filename 是待創建新文件的路徑加文件名,當你的目的是創建新文件時,它不應與同路徑下其他文件重名【若位於當前目錄下,則無需指定路徑】
例如,在當前目錄下創建一個名為test1的新文件可以使用,
vim tes1 或 vi tes1
補充:vi(m)命令常被用於創建並編輯一個新文件。使用vi(m)命令後,新文件只處於VI編輯器的緩存內,所以一定要記得用VI編輯器內的 :w 或 :wq 命令保存一下。
(3)cat命令,與重定向操作符 > 或 >> 結合
格式:cat > [filename]或cat >> [filename]
參數,filename是待創建新文件的路徑加文件名,當你的目的是創建新文件時,它不應與同路徑下其他文件重名【若位於當前目錄下,則無需指定路徑】
例如,在當前目錄下創建一個名為test1的新文件可以使用,
cat > tes1 或cat >>tes1
補充:cat命令常用於創建小文件或空白文件。此外,使用cat命令創建文件後直接進入文件編輯狀態,此時的輸入分行保存,亦即每當你輸入一個回車鍵就保存一次。(可以打開文件所在文件夾,編輯過程中可以明顯看到文件圖標的變化);
文件編輯結束後,使用ctrl+d快捷鍵結束編輯並退回命令提示符。還有人說,編輯完成後,使用ctrl+c快捷鍵就可以保存文件。但ctrl+c其實是結束當前任務的快捷鍵,使用後回到命令行提示符。在使用ctrl+c前請務必先使用回車鍵保存最後一行輸入,不然你會發現你在文件輸入的最後一行木有了~~~
1.3 復制文件
cat命令,與重定向操作符>結合的
格式:cat [srcpath_oldname]> [dstpath_newname]
參數,srcpath_oldname是待復制源文件的路徑加文件名【若位於當前目錄下,則無需指定路徑】
參數,dstpath_newname是目標路徑加新文件名【若位於當前目錄下,則無需指定路徑】【無論改不改文件名,必須指定新文件名】
例如:將上層目錄下的test.c文件復制到當前目錄下,並重命名為test.c.bak,命令為
cat ../test.c > test.c.bak
1.4 鏈接文件--ln
鏈接文件的意思,是在現有文件和一個新文件名之間建立新鏈接。(此處的文件名廣義,是指的文件的路徑加狹義文件名)Linux系統中的鏈接文件其實可以理解為Windows系統中為文件建立快捷方式。它可以用來為文件建立別名,也可以使得我們擁有在當前目錄訪問其他目錄下文件的能力,只要我們在當前目錄下為該文件建立了鏈接。鏈接文件的命令是 ln ,它的使用方法如下,
格式:ln [srcpath_oldname] [dstpath_newname]
參數,srcpath_oldname是現有文件的路徑加文件名【若位於當前目錄下,則無需指定路徑】
參數,dstpath_newname是鏈接文件的路徑加新文件名【若位於當前目錄下,則無需指定路徑(但需命新名)】【若不欲為鏈接文件重新命名,則僅需指定鏈接文件路徑(不同於源文件路徑)】
例如,為當前目錄下的test0.99.c文件在 /home/wind/bak/ 目錄下建立鏈接文件,重命名為test.c,命令為
ln test0.99.c /home/wind/bak/test.c
補充:對於原文件與鏈接文件,cat等命令效果相同,而rm等命令則效果不同。
1.5 統計文件信息--wc
格式:wc [filename]
選項:-l 選項統計行數,
-w 選項統計單詞數,
-c 選項統計字符數
參數,filename是待統計文件的路徑加文件名【若位於當前目錄下,則無需指定路徑】
例如:統計當前目錄下test1文件的行數和字符數,可以使用
wc -lc test1
補充:wc命令默認統計行數、單詞數與字符數全部三樣信息,可以通過選項指定只統計其中一項或任意兩項;
可以同時指定多個文件作為參數,同時統計多個文件的信息。
二、目錄操作命令
2.1 查看當前目錄路徑&&切換目錄
pwd
無參,查看當前目錄的路徑
cd [dstpath]
參數dstpath 用以指定要切換的目錄路徑,可以使用相對路徑或絕對路徑,也可以為空。若為空,則切回到當前用戶的主目錄。
2.2 查看指定目錄下內容--ls
格式:ls [dstpath]
幾個重要的選項:-a 顯示隱藏文件
-l 顯示所列文件的詳細信息
-R 循環列出子目錄的內容
參數 dstpath 用以指定要切換的目錄路徑,可以使用相對路徑或絕對路徑,也可以為空。若為空,則默認查看當前目錄;
2.3 創建目錄--mkdir
格式:mkdir [dstpath_dirname]
選項:-p 創建完整的多層目錄結構
參數 dstpath_dirname 是要待創建目錄的路徑加目錄名【若在當前目錄下建立子目錄,則無需指定目錄的路徑】
例如:使用一句命令,實現在當前目錄下創建 mine 子目錄,並在 mine 目錄下創建 hello 子目錄,再在 hello 目錄下建立 world 子目,可以用
mkdir -p mine/hello/world
補充,(1)從參數可以看出,並沒有限定必須在當前目錄建立子目錄,我們可以在任何指定的路徑下建立目錄;
(2)當未使用-p選項時,要求指定的路徑必須存在;反之,使用了-p選項後,只要指定的路徑不存在,系統就幫助自動建立相應目錄結構
2.4 刪除目錄--rmdir
格式:rmdir [dstpath_dirname]
參數 dstpath_dirname 是待刪除目錄的路徑加目錄名【若在當前目錄下刪除子目錄,則無需指定目錄的路徑】
補充:(1)只能刪除空的子目錄【即,除了當前目錄(.)和父目錄(..)外,不包含任何其他子目錄或者文件】
(2)多數UNIX系統下只能刪除當前目錄的子目錄,但CentOS下,則無此限制。
三、通用操作命令
3.1 通用復制--cp
格式:cp [srcpath_oldname] [dstpath_newname]
選項:-r 當復制目錄時,需使用此選項
參數,srcpath_oldname是待復制源文件的路徑加文件名(或目錄名)【若位於當前目錄下,則無需指定路徑】
參數,dstpath_newname是目標路徑加新文件名【若位於當前目錄下,則無需指定路徑】【若不欲修改源文件名,則僅需指定目標文件路徑(不同於源文件路徑)】
例如,將當前目錄下的test.c文件復制到/home/wind/bak/目錄下,文件名不變,命令為
cp test.c /home/wind/bak/
3.2 通用移動--mv
格式:mv [srcpath_oldname] [dstpath_newname]
參數,srcpath_oldname是待移動源文件的路徑加文件名(或目錄名)【若位於當前目錄下,則無需指定路徑】
參數,dstpath_newname是目標路徑加新文件名(或目錄名)【若位於當前目錄下,則無需指定路徑】【若不欲修改源文件名,則僅需指定目標文件路徑(不同於源文件路徑)】
例如:將當前目錄下的test1文件移動到當前目錄的new子目錄下,可以使用
mv test1 new/
補充:當目標路徑與源文件路徑一致,且新文件名不同於源文件名時,mv起到重命名的作用。
例如:將new目錄下的test1重命名為test2,可以用命令
mv new/test1 new/test2
3.3 通用刪除--rm
格式:rm [dstpath_dirname]
選項:-r 當復制目錄時,需使用此選項
參數 dstpath_dirname 是待刪除目錄的路徑加文件名(或目錄名)【若位於當前目錄下,則無需指定路徑】
補充:多數UNIX系統下,默認刪除前不需要確認,需加 -i 選項使得刪除文件前有確認提示;【對於防止誤刪有意義】
CentOS系統默認刪除前需要確認,需加 -f 選項使得強制刪除而不顯示確認提示。【這對於刪除非空目錄非常有效】
四、小結
(1)cat命令真是我們文件界的全能小王子,上面提到了其可以查看、創建、復制文件。除此以外,cat命令常用的功能還包括合並文件,例如:
cat f1 f2 > file //將文件f1和f2合並為文件file