文件管理類
目錄
1.查看文件信息:ls
ls是英文單詞list的簡寫,其功能爲列出目錄的內容,是用戶最常用的命令之一,它類似於DOS下的dir命令。
Linux文件或者目錄名稱最長可以有256個字符,“.”代表當前目錄,“..”代表上一級目錄,以“.”開頭的文件爲隱藏文件,需要用 -a 參數才能顯示。
ls常用參數:
參數 |
含義 |
-a |
顯示指定目錄下所有子目錄與文件,包括隱藏文件 |
-l |
以列表方式顯示文件的詳細信息 |
-h |
配合 -l 以人性化的方式顯示文件大小 |
圖中列出的信息含義如下圖所示:
與DOS下的文件操作類似,在Unix/Linux系統中,也同樣允許使用特殊字符來同時引用多個文件名,這些特殊字符被稱爲通配符。
通配符 |
含義 |
* |
文件代表文件名中所有字符 |
ls te* |
查找以te開頭的文件 |
ls *html |
查找結尾爲html的文件 |
? |
代表文件名中任意一個字符 |
ls ?.c |
只找第一個字符任意,後綴爲.c的文件 |
ls a.? |
只找只有3個字符,前2字符爲a.,最後一個字符任意的文件 |
[] |
[”和“]”將字符組括起來,表示可以匹配字符組中的任意一個。“-”用於表示字符範圍。 |
[abc] |
匹配a、b、c中的任意一個 |
[a-f] |
匹配從a到f範圍內的的任意一個字符 |
ls [a-f]* |
找到從a到f範圍內的的任意一個字符開頭的文件 |
ls a-f |
查找文件名爲a-f的文件,當“-”處於方括號之外失去通配符的作用 |
\ |
如果要使通配符作爲普通字符使用,可以在其前面加上轉義字符。“?”和“*”處於方括號內時不用使用轉義字符就失去通配符的作用。 |
ls \*a |
查找文件名爲*a的文件 |
2.輸出重定向命令:>
Linux允許將命令執行結果重定向到一個文件,本應顯示在終端上的內容保存到指定文件中。
如:ls > test.txt ( test.txt 如果不存在,則創建,存在則覆蓋其內容 )
>輸出重定向會覆蓋原來的內容,>>輸出重定向則會追加到文件的尾部。
3.分屏顯示:more
查看內容時,在信息過長無法在一屏上顯示時,會出現快速滾屏,使得用戶無法看清文件的內容,此時可以使用more命令,每次只顯示一頁,按下空格鍵可以顯示下一頁,按下q鍵退出顯示,按下h鍵可以獲取幫助。
4.管道:|
管道:一個命令的輸出可以通過管道做爲另一個命令的輸入。
管道我們可以理解現實生活中的管子,管子的一頭塞東西進去,另一頭取出來,這裏“ | ”的左右分爲兩端,左端塞東西(寫),右端取東西(讀)。
5.清屏:clear
clear作用爲清除終端上的顯示(類似於DOS的cls清屏功能),也可使用快捷鍵:Ctrl + l ( “l” 爲字母 )。
6.切換工作目錄: cd
在使用Unix/Linux的時候,經常需要更換工作目錄。cd命令可以幫助用戶切換工作目錄。Linux所有的目錄和文件名大小寫敏感。
cd後面可跟絕對路徑,也可以跟相對路徑。如果省略目錄,則默認切換到當前用戶的主目錄。
命令 |
含義 |
cd |
切換到當前用戶的主目錄(/home/用戶目錄),用戶登陸的時候,默認的目錄就是用戶的主目錄。 |
cd ~ |
切換到當前用戶的主目錄(/home/用戶目錄) |
cd . |
切換到當前目錄 |
cd .. |
切換到上級目錄 |
cd - |
可進入上一個進入的目錄 |
注意:如果路徑是從根路徑開始的,則路徑的前面需要加上 “ / ”,如 “ /mnt ”,通常進入某個目錄裏的文件夾,前面不用加 “ / ”。
7.顯示當前路徑:pwd
使用pwd命令可以顯示當前的工作目錄,該命令很簡單,直接輸入pwd即可,後面不帶參數。
8.創建目錄:mkdir
通過mkdir命令可以創建一個新的目錄。參數-p可遞歸創建目錄。
需要注意的是新建目錄的名稱不能與當前目錄中已有的目錄或文件同名,並且目錄創建者必須對當前目錄具有寫權限。
9. 刪除目錄:rmdir
可使用rmdir命令刪除一個目錄。必須離開目錄,並且目錄必須爲空目錄,不然提示刪除失敗。
10.刪除文件:rm
可通過rm刪除文件或目錄。使用rm命令要小心,因爲文件刪除後不能恢復。爲了防止文件誤刪,可以在rm後使用-i參數以逐個確認要刪除的文件。
常用參數及含義如下表所示:
參數 |
含義 |
-i |
以進行交互式方式執行 |
-f |
強制刪除,忽略不存在的文件,無需提示 |
-r |
遞歸地刪除目錄下的內容,刪除文件夾時必須加此參數 |
可通過rm刪除文件或目錄。使用rm命令要小心,因爲文件刪除後不能恢復。爲了防止文件誤刪,可以在rm後使用-i參數以逐個確認要刪除的文件。
常用參數及含義如下表所示:
參數 |
含義 |
-i |
以進行交互式方式執行 |
-f |
強制刪除,忽略不存在的文件,無需提示 |
-r |
遞歸地刪除目錄下的內容,刪除文件夾時必須加此參數 |
11.建立鏈接文件:ln
- Linux鏈接文件類似於Windows下的快捷方式。
- 鏈接文件分爲軟鏈接和硬鏈接。
- 軟鏈接:軟鏈接不佔用磁盤空間,源文件刪除則軟鏈接失效。
- 硬鏈接:硬鏈接只能鏈接普通文件,不能鏈接目錄。
使用格式:
ln 源文件 鏈接文件
ln -s 源文件 鏈接文件
如果沒有-s選項代表建立一個硬鏈接文件,兩個文件佔用相同大小的硬盤空間,即使刪除了源文件,鏈接文件還是存在,所以-s選項是更常見的形式。
注意:如果軟鏈接文件和源文件不在同一個目錄,源文件要使用絕對路徑,不能使用相對路徑。
12.查看或者合併文件內容:cat
13.文本搜索:grep
Linux系統中grep命令是一種強大的文本搜索工具,grep允許對文本文件進行模式查找。如果找到匹配模式, grep打印包含模式的所有行。
grep一般格式爲:
grep [-選項] ‘搜索內容串’文件名
在grep命令中輸入字符串參數時,最好引號或雙引號括起來。例如:grep‘a ’1.txt。
常用選項說明:
選項 |
含義 |
-v |
顯示不包含匹配文本的所有行(相當於求反) |
-n |
顯示匹配行及行號 |
-i |
忽略大小寫 |
grep搜索內容串可以是正則表達式。
正則表達式是對字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個“規則字符串”,這個“規則字符串”用來表達對字符串的一種過濾邏輯。
grep常用正則表達式:
參數 |
含義 |
^a |
行首,搜尋以 m 開頭的行 grep -n '^a' 1.txt |
ke$ |
行尾,搜尋以 ke 結束的行 grep -n 'ke$' 1.txt |
[Ss]igna[Ll] |
匹配 [] 裏中一系列字符中的一個 搜尋匹配單詞signal、signaL、Signal、SignaL的行 grep -n '[Ss]igna[Ll]' 1.txt |
. (點) |
匹配一個非換行符的字符 匹配 e 和 e 之間有任意一個字符,可以匹配 eee,eae,eve,但是不匹配 ee,eaae grep -n 'e.e' 1.txt |
14.計算文件行數或字數:wc
常用選項說明:
選項 |
含義 |
-l |
統計行數 |
-w |
統計字數。一個字被定義爲由空白、跳格或換行字符分隔的字符串。 |
-c |
統計字節數 |
-m |
統計字符數。這個標誌不能與 -c 標誌一起使用。 |
15.查找文件:find
find命令功能非常強大,通常用來在特定的目錄下搜索符合條件的文件,也可以用來搜索特定用戶屬主的文件。
常用用法:
命令 |
含義 |
find ./ -name test.sh |
查找當前目錄下所有名爲test.sh的文件 |
find ./ -name '*.sh' |
查找當前目錄下所有後綴爲.sh的文件 |
find ./ -name "[A-Z]*" |
查找當前目錄下所有以大寫字母開頭的文件 |
find /tmp -size 2M |
查找在/tmp 目錄下等於2M的文件 |
find /tmp -size +2M |
查找在/tmp 目錄下大於2M的文件 |
find /tmp -size -2M |
查找在/tmp 目錄下小於2M的文件 |
find ./ -size +4k -size -5M |
查找當前目錄下大於4k,小於5M的文件 |
find ./ -perm 0777 |
查找當前目錄下權限爲 777 的文件或目錄 |
16.拷貝文件:cp
cp命令的功能是將給出的文件或目錄複製到另一個文件或目錄中,相當於DOS下的copy命令。
常用選項說明:
選項 |
含義 |
-a |
該選項通常在複製目錄時使用,它保留鏈接、文件屬性,並遞歸地複製目錄,簡單而言,保持文件原有屬性。 |
-f |
刪除已經存在的目標文件而不提示 |
-i |
交互式複製,在覆蓋目標文件之前將給出提示要求用戶確認 |
-r |
若給出的源文件是目錄文件,則cp將遞歸複製該目錄下的所有子目錄和文件,目標文件必須爲一個目錄名。 |
-v |
顯示拷貝進度 |
cp vim_configure/ code/ -ivr 把文件夾 vim_configure 拷貝到 code 目錄裏:
17.移動文件:mv
用戶可以使用mv命令來移動文件或目錄,也可以給文件或目錄重命名。
常用選項說明:
選項 |
含義 |
-f |
禁止交互式操作,如有覆蓋也不會給出提示 |
-i |
確認交互方式操作,如果mv操作將導致對已存在的目標文件的覆蓋,系統會詢問是否重寫,要求用戶回答以避免誤覆蓋文件 |
-v |
顯示移動進度 |
18.獲取文件類型:file
Linux系統文件類型不是根據文件擴展名分類的,通過file命令可以確認文件具體類型。
19. 歸檔管理:tar
計算機中的數據經常需要備份,tar是Unix/Linux中最常用的備份工具,此命令可以把一系列文件歸檔到一個大文件中,也可以把檔案文件解開以恢復數據。
tar使用格式
tar [參數] 打包文件名 文件
tar命令很特殊,其參數前面可以使用“-”,也可以不使用。
常用參數:
參數 |
含義 |
-c |
生成檔案文件,創建打包文件 |
-v |
列出歸檔解檔的詳細過程,顯示進度 |
-f |
指定檔案文件名稱,f後面一定是.tar文件,所以必須放選項最後 |
-t |
列出檔案中包含的文件 |
-x |
解開檔案文件 |
注意:除了f需要放在參數的最後,其它參數的順序任意。
20.文件壓縮解壓:gzip
- tar與gzip命令結合使用實現文件打包、壓縮。
- tar只負責打包文件,但不壓縮,用gzip壓縮tar打包後的文件,其擴展名一般用xxxx.tar.gz。
gzip使用格式如下:
gzip [選項] 被壓縮文件
常用選項:
選項 |
含義 |
-d |
解壓 |
-r |
壓縮所有子目錄 |
tar這個命令並沒有壓縮的功能,它只是一個打包的命令,但是在tar命令中增加一個選項(-z)可以調用gzip實現了一個壓縮的功能,實行一個先打包後壓縮的過程。
壓縮用法:tar cvzf 壓縮包包名 文件1 文件2 ...
-z |
指定壓縮包的格式爲:file.tar.gz |
例如:tar zcvf test.tar.gz 1.c 2.c 3.c 4.c把 1.c 2.c 3.c 4.c 壓縮成 test.tar.gz
解壓用法: tar zxvf 壓縮包包名
參數 |
含義 |
-z |
指定壓縮包的格式爲:file.tar.gz |
解壓到指定目錄:-C (大寫字母“C”)
例子:tar -xvf new.tar.gz -C ./test/ 將 new.tar.gz 解壓到當前目錄下的 test 目錄下:
21.文件壓縮解壓:bzip2
- tar與bzip2命令結合使用實現文件打包、壓縮(用法和gzip一樣)。
- tar只負責打包文件,但不壓縮,用bzip2壓縮tar打包後的文件,其擴展名一般用xxxx.tar.bz2。
- 在tar命令中增加一個選項(-j)可以調用bzip2實現了一個壓縮的功能,實行一個先打包後壓縮的過程。
- 壓縮用法:tar cjvf 壓縮包包名 文件...(tar jcvf bk.tar.bz2 *.c)
- 解壓用法:tar xjvf 壓縮包包名 (tar jxvf bk.tar.bz2)
22.文件壓縮解壓:zip、unzip
- 通過zip壓縮文件的目標文件不需要指定擴展名,默認擴展名爲zip。
- 壓縮文件:zip [-r] 目標文件(沒有擴展名) 源文件
- 解壓文件:unzip -d 解壓後目錄文件 壓縮文件
23. 查看命令位置:which