本文講了一些檔案和目錄本身的基礎知識和操作,如新建、復制、移動等,并不涉及檔案內容的查看、編輯、搜索等操作,
檔案歸屬
檔案的歸屬只有三種關系:
- 所有者u:即檔案的擁有者,并且一個檔案同時只能有一個所有者,一般是誰創建的檔案,這個檔案的所有者就是誰,
- 所屬組g:檔案歸屬的組,并且一個檔案同時只能歸屬于一個組,只有組中的成員才能操作此檔案,
- 其他人o:非前兩者關系的用戶就是其他人,
檔案權限
Linux中權限的表示由四部分組成,如-rw-r--r--,第一部分為第一個字符,表示檔案型別,常用檔案型別有-(二進制檔案)、d(目錄)和l(軟連接檔案,相當于Windows中的快捷方式),接下來每三個字符為一組的三個部分,分別代表該檔案所有者u、所屬組g和其他人o所擁有的權限,而每個部分的權限由三個字符表示其擁有的r讀、w寫和x執行權限,如果有該權限則用對應的字母表示,如果沒有該權限則用-表示,
目錄的rwx權限如下(檔案的rwx權限很好理解,但是目錄的rwx權限是有些差別的):
- r:可以列出目錄中的內容,
- w:可以在目錄中創建和洗掉檔案,
- x:可以進入目錄,
ls命令
ls [選項] [目錄]:列出目錄下的所有檔案及子目錄,
選項:
- -a:顯示目錄下的所有內容,包括隱藏檔案(Linux中以點“.”開頭的檔案或目錄為隱藏檔案),
- -l:顯示目錄下內容的詳細資訊,分別為權限、參考系數(相當于參考計數)、檔案所有者、檔案所屬組、檔案大小(單位Byte)、檔案最后一次修改時間(Linux中沒有創建時間的概念)、檔案名,
- -h:人性化顯示,將檔案等內容的大小以較為人性化的方式顯示,如M、G等,而不是默認的單位位元組,
- -d:顯示當前所在目錄或指定目錄本身,
- -i:顯示檔案或目錄的id號(也稱為i節點號),
mkdir命令
mkdir [-p] 目錄 [目錄1 目錄2 ...]:用于創建一個或多個空白目錄,-p選項是用于遞回創建目錄,
cd命令
cd [目錄]:切換到指定目錄,目錄還以使用一個點“.”表示當前目錄,兩個點“..”表示上一級目錄,
pwd命令
顯示當前目錄的絕對路徑,
rmdir命令
rmdir 目錄:洗掉一個空目錄,
rm命令
rm [-rf] 檔案或目錄:洗掉檔案或目錄,不加選項則默認洗掉檔案,
- -r:洗掉目錄,
- -f:強制執行,
cp命令
cp [-rp] 一個或多個原檔案或目錄 目標檔案或目錄:復制檔案或目錄,如果不加選項,則默認復制檔案,當目標檔案或目錄不存在時,相當于復制并重命名,
- -r:復制目錄,
- -p:保留檔案屬性,如最后一次修改時間等,
mv命令
mv 原檔案或目錄 目標檔案或目錄:移動(剪切)檔案或目錄,當目標檔案或目錄不存在時,則相當于剪切并重命名,
檔案或目錄重命名:Linux中沒有直接的重命名命令,但是一般使用mv來實作檔案或目錄的重命名,即將檔案或目錄移動到“原位置”,但是名稱卻變了,如“mv /tmp/test.txt /tmp/linux_test.txt”就可以將test.txt重命名為linux_test.txt,
touch命令
touch 一個或多個檔案或目錄:如果檔案不存在,則會創建一個或多個空白檔案(多個空白檔案使用空格隔開,如果檔案名中含有空格,檔案名需要使用雙引號括起來,但建議不要使用空格來命名檔案),如果檔案或目錄已經存在,則會根據指定的選項修改檔案的時間屬性,如最后一次修改時間(這里沒有列出相應的選項,需要時可自行查看),
注意:新建的檔案是沒有執行權限的,所以如果新建的檔案是腳本,則需要先賦予它執行權限才能執行這個腳本,
ln命令
ln [-s] 原檔案 目標檔案:生成鏈接檔案(即目標檔案,它指向原檔案),默認生成硬鏈接檔案,-s選項指定生成軟鏈接檔案,
軟鏈接:類似Windows中的快捷方式,只是一個指向另一個檔案的鏈接而已,并且Linux中的軟鏈接檔案的權限永遠都是lrwxrwxrwx,以及大小都是固定的很小的位元組數,
硬鏈接:硬鏈接的資訊與原檔案的資訊都是一樣的,并且其中一個檔案更新后,硬鏈接檔案也會同步更新,相當于cp -p命令再加上同步跟新的功能,之所以它能同步更新,是因為硬鏈接的i節點和原檔案的i節點是相同的(而Linux就是通過i節點來識別不同的檔案),
軟鏈接與硬鏈接的差別(或者說硬鏈接的特點):
- 硬鏈接是不能跨磁區的,
- 硬鏈接是不能指向目錄的,
locate命令
locate -i 檔案名:在檔案資料庫中查找檔案,(默認區分大小寫,-i選項表示不區分大小寫)
這個命令搜索速度非常快,幾乎秒搜,find命令是去硬碟上搜索,而locate是在自己維護的一個檔案資料庫中查找,這個檔案資料庫會定期自動更新,但是檔案資料庫是不會收錄/tmp目錄下的檔案的,
updatedb:手動更新檔案資料庫,
find命令
find 搜索范圍 匹配條件:搜索檔案,
find是直接在硬碟上搜索,所以它的消耗是非常大的,所以使用的時候應該盡量縮小搜索范圍,匹配條件也越精確越好,而且最好不要在系統負載較高時使用這個命令,
常用選項:
- -name:根據檔案名搜索,如“find / -name init”表示在根目錄的范圍內搜索檔案名為init的檔案(精確匹配),如果想要模糊匹配,可以使用通配符,如find / -name *init*(星號*匹配任意字符,問號?匹配單個字符),
- -iname:不區分大小寫進行檔案查找,
- -size:根據檔案大小進行搜索,+表示大于,-表示小于,=表示等于,查找大小的單位為一個資料塊,Linux中一個資料塊的大小為512位元組,即0.5KB,所以搜索的時候需要自己轉換以下,如“find / -size +204800”表示在根目錄下查找大于100MB的檔案(100MB=102400KB=204800個資料塊),
- -user:根據所有者來進行搜索,
- -group:根據所屬組來進行搜索,
- -amin:根據檔案訪問時間查找,時間單位為分鐘,
- -cmin:根據檔案屬性(屬性即ls -l能查看到的內容)的改變時間查找,時間單位為分鐘,如“find /etc -cmin -5”表示在/etc目錄下查找5分鐘內檔案屬性被修改過的檔案,
- -mmin:根據檔案內容的改變時間查找,時間單位為分鐘,
- -a:連接選項,邏輯與,表示需要兩個條件同時滿足,如find /etc -size +1638840 -a -size -204800,
- -o:連接選項,邏輯或,表示兩個條件滿足其中任意一個即可,
- -type:根據檔案型別查找,f表示檔案,d表示目錄,l表示軟鏈接,
- -exec/-ok 命令 {}\;:使用-exec(直接執行,不會詢問)或-ok(執行命令時會進行詢問)對查找結果執行某個命令,{}\;是固定的寫法,{}表示查找結果,\只是對后面分號;的轉義而已,如“find /etc -name init -exec ls -l {}\;”,
- -inum:根據i節點查找,
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/105889.html
標籤:Linux
