常用指令:
sudo du -h / --max-depth=1 2>/dev/null | sort -h
:檢查 root directory 每個目錄所使用的容量
14.2 Mounting and Unmounting File Systems =========================================
常用指令:
blkid
:顯示所有 block device 資訊mount source_device destination_dir
:透過 device name 掛載mount UUID destination_dir
:透過 UUID 掛載
1 | # 查詢機器上的 block device |
14.3 Making Links Between Files ===============================
Partition UUID & inode
UUID 存於 super block 中
inode block -> inode table 結構:
- inode number
- Permission
- Hard Link Subdirectory 數量
- UID
- GID
- Size
- Timestamp
- Filename
- Pointer
Hard Link
inode 在 Linux 中是真正指向檔案實際內容的指標
透過 ln
可建立 Hard Link,這是個指向 inode 的連結
1 | # 產生檔案 |
Hard Link 特性 & 說明:
- 上面建立 Hard Link 的示範,可看出指向同一個 inode 的連結,從一個變成兩個(可防止檔案誤刪)
- 增加 hard link 不會增加磁碟空間
- 不能跨 File System
- 不能 link 目錄,只能建立在檔案上
Symbolic Link
1 | # 建立 symbolic link |
特色:
- 類似捷徑
- 不能防止檔案誤刪
14.4 Locating Files on the System =================================
locate
要使用 locate 之前必須先執行 sudo updatedb
,才會有檔案資料庫可用,若要搜尋最新的檔案,也必須要執行 updatedb
sudo locate passwd
:尋找檔名為 passwd 的檔案sudo locate -n 5 passwd
:同上,但只列出 5 筆資料sudo locate -i messages
:以 case-insensitive 的方式搜尋
find
即時搜尋,可找到剛新增的檔案
sudo find / -name sshd_config
:搜尋檔名為 sshd_config 的檔案sudo find / -name '*.txt'
:在 / 目錄下尋找副檔名為 txt 的檔案sudo find / -iname '*messages*'
:在 / 目錄下以 case-insensitive 的方式檔名尋找 messages 的檔案sudo find -user student
:尋找 /home 目錄中,user 為 student 的檔案sudo find -group student
:尋找 /home 目錄中,group 為 student 的檔案sudo find / -user root -group mail
:在 / 目錄中尋找 user=root, group=mail 的檔案sudo find /home -perm 764
:尋找 /home 中 permission=764 檔案sudo find /home -perm -324
:尋找 /home 中,**至少**有指定權限的檔案sudo find /home -perm /442
:尋找 /home 中,user(read)/group(read)/others(write) 至少其中一個符合指定權限的檔案sudo find / -perm /7000
:搜尋檔案當中含有 SGID 或 SUID 或 SBIT 的屬性sudo find /run -type s
:找出 /run 目錄中,檔案類型為 Socket 的檔名有哪些type 選項可以有 f(一般檔案) / d(目錄) / l(symbolic link) / b(block device)
sudo find -size -10M
:尋找小於 10MB 的檔案sudo find / -type f -links +1
:尋找擁有超過 1 個 hard link 的一般檔案
find 的特別功能
find 還可以針對搜尋結果加上 action:
sudo find /etc/yum.repos.d/ -type f -exec mv {} {}1 \;
以上指令表示:
搜尋 /etc/yum.repos.d/ 目錄中的一般檔案
將每個檔案進行改名,在檔名後面多加一個 1