Shell命令——文件目錄


Linux只有一個文件系統樹,不同的硬件設備可以掛載在不同目錄下。 
文件或目錄有兩種表示方式: 
 - 絕對路徑:從根目錄”/”開始 
 - 相對路徑:從工作目錄開始,使用”..”指向父目錄,”.”指向當前目錄。在大多數情況下”./”可以省略。 
隱藏文件:以”.”開頭的文件

命令 作用
pwd 顯示當前工作目錄
cd 切換工作目錄
ls 列出目錄的內容
file 打印文件類型的說明
mkdir 新建目錄
cp 復制文件或目錄
mv 移動文件或目錄
rm 刪除文件或目錄
ln 創建鏈接
locate 通過查找路徑名數據庫搜尋文件(updatedb命令用來更新數據庫,一般一天更新一次)
find 查找文件
xargs 從標准輸入中建立、執行命令
touch 更改文件日期時間
stat 顯示文件或文件系統的詳細信息

cd

cd:切換到主目錄 
cd -:切換到先前工作目錄 
cd ~user:切換到user的主目錄

ls

參數可用文件或目錄,可接多個參數。

短選項 長選項 含義
-a –all 列出所有文件,包含隱藏文件和當前目錄、父目錄(默認不列出)
-d –directory 列出目錄本身而不是目錄的內容,常和-l一起使用
-F –classify 在所列項后加上類型指示符,如用”/”指示目錄
-h –human-readable 在用長格式”-l”列出時,使用可讀格式顯示大小。默認使用字節數。
-l   使用長格式顯示結果
-r –reverse 以相反的順序顯示結果。默認使用字母升序顯示。
-S   以文件大小順序顯示結果。從大到小。文件夾大小是所有目錄項的大小,一般是4K。
-t   以修改時間順序顯示結果。從新到舊。

列出隱藏文件和隱藏目錄: 
ls -d .[!.]* 以點開頭,第二個字符不是點。(書中的模式.[!.]?*會忽略”.a”的情況) 
ls -d .* 會列出隱藏文件和目錄以及本目錄和父附錄的所有內容

mkdir

mkdir directory… 
可同時新建多個目錄

cp

默認情況下不能拷貝目錄 
拷貝文件:cp file1 file2 
拷貝目錄:cp -a(-r) dir1 dir2 
  - 拷貝dir1及dir1中的所有內容。 
  - 若dir2存在,拷貝到dir2下,即dir2/dir1。 
  - 若dir2不存在,新建dir2並復制dir1的內容到dir2下。 
拷貝到指定目錄下:cp item… directory 
  - 拷貝文件到指定目錄下,此時directory必須存在。 
  - 若要拷貝目錄,需指定-a或-r選項

選項 長選項 含義
-a –archive 復制文件或目錄的所有內容及屬性,包含所有者信息和權限。默認情況下,不能拷貝目錄,拷貝后使用拷貝者設定的的默認信息。
-i –interactive 如果目標文件已存在,給出提示信息請求確認。默認情況下,直接覆蓋文件。
-r –recursive 復制目錄
-u –update 拷貝目錄時,只復制目標目錄中不存在或對應更新的文件。
-v –verbose 顯示提示信息

mv

移動文件或者目錄,參數和cp類似,但移動目錄時不需要-a(-r)選項。 
移動文件或目錄:mv item1 item2 
  若移動文件,直接覆蓋item2。 
  若移動目錄,item2存在時,item1移動到item2下,即item2/item1。 
    若item2不存在,新建item2並移動item1的所有內容到item2,然后刪除item1。 
移動到指定目錄下:mv item… directory 
  移動文件或目錄到指定目錄,此時directory必須存在

選項 長選項 含義
-i –interactive 如果目標文件或目錄已存在,給出提示信息請求確認。默認情況下,直接覆蓋文件。
-u –update 移動目錄時,只移動目標目錄中不存在或對應更新的文件。
-v –verbose 顯示提示信息

rm

刪除文件或者目錄,和cp類似,刪除目錄時需要-r選項。當文件或目錄不存在時,會給出提示信息:”No such file or directory”。 
刪除文件:rm file… 
刪除文件和目錄:rm -r file… dir…

選項 長選項 含義
-i –interactive 如果文件或目錄存在,給出提示信息請求確認。默認情況下,直接刪除文件。
-r –recursive 刪除目錄及子目錄。
-f –force 文件不存在時不給出提示信息,也忽略-i選項的確認信息。
-v –verbose 顯示提示信息

ln

創建硬鏈接:ln file link 
  不能引用不同磁盤分區的文件,不能引用目錄 
  建立不同的目錄項,指向同一個數據inode塊(ls -i查看inode編號) 
  ls查看時,與目標文件沒有區別 
  刪除時,只是刪除硬鏈接,文件不變。當文件的所有硬鏈接都刪除時,才會刪除文件

創建軟鏈接(符號鏈接):ln -s item link 
  創建一個特殊文件,包含一個指向文件或目錄的指針 
  符號鏈接大小是指針字符串的大小 
  ls查看時,是l類型,有”->”號指向目標文件或目錄。目標不存在時(壞鏈接),一般會反色顯示。 
  item可以是絕對路徑,也可以是相對路徑 
  大部分操作時以鏈接目標為對象,但rm命令是刪除符號鏈接 
  符號文件的權限都是”偽權限”,真實權限由符號鏈接指向的文件確定

find

find命令包含test選項、action選項和options選項,實現高級文件搜索。 
操作符:-and[-a](默認)、-or[-o]、-not[-!]、括號()。-and和-or按照短路規則執行,括號需要用反斜杠()

test選項: 
  文件類型(-type):f-普通文件、d-目錄、l-符號鏈接、b-塊設備文件、c-字符設備文件 
  文件名(-name):-name “*.jpg”,一般用引號防止shell擴展 
  大小(-size):+1M-超過1M,-1M-小於1M,1M-等於1M。支持的單位:b-512字節塊(默認)、c-字節、w-兩個字節、k-KB(1024字節),M-MB,G-GB

action選項: 
  -delete:刪除 
  -ls 
  -print:打印匹配項(默認操作),-print0可以識別文件名中的空格,配合xargs –null用來處理空格文件名。 
  -quit 
  -exec[-ok] command {} ; :自定義操作,{}表示當前路徑,;做分隔符表示命令結束。{}和;需要用單引號防止shell識別。

option選項: 
  -depth 
  -maxdepth levels 
  -mindepth levels 
  -mount


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM