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
