du
命令
du
命令(Disk Usage)是用于查看文件或目录磁盘使用情况的命令,它能够列出指定文件或目录的大小。
基本语法如下:
1 | du [OPTION]... [FILE]... |
常用选项包括:
-h, --human-readable
:以易读的方式显示文件大小,以 KB、MB、GB 等单位。-s, --summarize
:仅显示总大小,不列出每个子目录的大小。-c, --total
:在所有显示行的末尾输出总和。-k
:以 KB 为单位显示文件大小。-m
:以 MB 为单位显示文件大小。-g
:以 GB 为单位显示文件大小。
一些常用的用法示例:
查看当前目录大小:
1
du -h
这将显示当前目录及其所有子目录的大小,并以易读的方式显示。
查看指定文件或目录大小:
1
du -h /path/to/file_or_directory
这将显示指定文件或目录的大小。
查看指定目录大小并列出每个子目录的大小:
1
du -h /path/to/directory
这将列出指定目录下每个子目录的大小,以及总体的大小。
查看当前目录下最大的文件或目录:
1
du -ah | sort -rh | head -n 10
这将列出当前目录下最大的 10 个文件或目录,并按照大小降序排列。
查看当前目录下总大小:
1
du -sh
这将显示当前目录的总大小,而不列出每个子目录的大小。
查看当前目录及其所有子目录的总大小:
1
du -sh *
这将显示当前目录及其所有子目录的总大小,但不列出每个子目录的大小。
du -a
和du -d
不能並存。因為du -d
只能級聯查找文件夾,而du -a
可以查找文件卻無法指定深度。
sort
命令
sort
命令是用于对文本文件内容进行排序的命令。它可以按照字母顺序、数字大小等方式对文本进行排序,并且支持多种选项以满足不同的需求。
當你對文件內容使用 sort
命令時,sort
會逐行讀取文件的內容,然後將這些行按照你指定的方式進行排序。
基本语法如下:
1 | sort [OPTION]... [FILE]... |
常用选项包括:
-r, --reverse
:逆序排序,即降序排序。-n, --numeric-sort
:按照数值大小排序。-f, --ignore-case
:忽略大小写。-u, --unique
:去重,去除重复的行。-k, --key=POS1[,POS2]
:指定以哪个字段进行排序,默认情况下是以整行作为一个字段。-t, --field-separator=SEP
:指定字段分隔符,默认是空格。-h, --human-numeric-sort
:以易读的方式对数字进行排序,例如将 “2K” 排在 “10M” 之前。
一些常用的用法示例:
按照字母顺序排序:
1
sort file.txt
这将按照字母顺序对
file.txt
中的内容进行排序。例如,考慮以下數字列表:
1
2
3
410
2
100
5如果按照字母順序排序,它們將按照字符串的第一個字符來排序,即按照1、2、5、1。這將導致以下順序:
1
2
3
410
100
2
5但如果按照數值大小排序,則會按照數字的大小來排序。這將導致以下順序:
1
2
3
42
5
10
100在
sort
命令中,使用-n
選項可以實現按照數值大小排序。按照数字大小排序:
1
sort -n file.txt
这将按照数字大小对
file.txt
中的内容进行排序。逆序排序:
1
sort -r file.txt
这将按照字母顺序对
file.txt
中的内容进行逆序排序。忽略大小写排序:
1
sort -f file.txt
这将按照字母顺序对
file.txt
中的内容进行排序,忽略大小写。去重:
1
sort -u file.txt
这将对
file.txt
中的内容进行排序,并且去除重复的行。按照第二列数字大小排序:
1
sort -nk2 file.txt
这将按照第二列数字大小对
file.txt
中的内容进行排序。使用逗号作为字段分隔符:
1
sort -t',' -k2 file.txt
这将使用逗号作为字段分隔符,并且按照第二列的内容进行排序。
find
命令搜索文件大小
基本的 find
命令语法是:
1 | find <path> <options> <actions> |
其中:
<path>
:指定要搜索的路径。<options>
:用于控制搜索行为的选项。<actions>
:用于指定搜索结果的操作,比如-exec
。
下面是一些常用的 find
命令选项和用法:
搜索文件名:
1
find . -name "filename"
这会在当前目录及其子目录中搜索文件名为 “filename” 的文件。
按类型搜索:
搜索文件:
1
find . -type f
搜索目录:
1
find . -type d
按大小搜索:
搜索大于指定大小的文件:
1
find . -size +10M
搜索小于指定大小的文件:
1
find . -size -10M
按权限搜索:
1
find . -perm 644
这会搜索所有权限设置为 644 的文件。
执行操作:
使用
-exec
执行命令:1
find . -name "*.txt" -exec cat {} \;
这会找到所有
.txt
文件并执行cat
命令来查看文件内容。执行其他操作,比如删除文件:
1
find . -type f -name "*.tmp" -delete
这会删除所有以
.tmp
结尾的文件。
使用 du
命令以及sort
命令整理與查找 mac 系統文件
- 查找一級目錄大小,按大小排序:
如果你想要按大小降序排序显示一级目录的文件大小,你可以将 du
命令与 sort
命令结合使用。
1 | du -h -d 1 | sort -rh |
du -h -d 1
:显示当前目录下每个一级文件和目录的總大小。-h
:以易读的方式显示文件大小,不加-h
會將以原始字節的方式顯示文件大小。-d 1
:指定深度为 1,表示只显指定目录的一级子目录或文件的大小。sort -rh
:对du
命令排序,-r
表示逆序(降序),-h
表示按照易读的数字格式进行比较。
- 使用
find
查找當前目錄下的一級文件夾及文件
1 | find . -maxdepth 1 |
find . -maxdepth 1
: 這個部分告訴 find
命令在當前目錄 (.
) 下搜索,但僅搜索一級目錄,不搜索子目錄。 -maxdepth 1
限制搜索深度為一級目錄。
- 使用
find -exec
結合du
命令查找當前目錄下的所有一級文件夾及文件
1 | find . -maxdepth 1 -exec du -sh {} + |
-exec
選項表示要執行一個額外命令,du -sh
則是計算目錄大小的命令,而{}
代表找到的每個一級目錄的占位符,+
則告訴find
命令將所有找到的目錄一次性傳遞給du
命令,而不是對每個目錄單獨執行du
命令。du -sh
會顯示當前目錄的總大小,而不包括子文件夾的大小。-s
選項表示總和,-h
選項表示以易讀的方式(如 KB、MB、GB)顯示大小。- 這個命令的意思是,先通過
find
查找了當前一級目錄下的所有文件及文件夾,在通過du
命令查找這些文件及文件夾的大小。由於find
查找出的一級目錄此時會被du
命令二次查找,即查找出二級目錄,所以需要用du -sh
來搜索當前目錄即可,而不需要再次深度查找。
- 使用
sort
排序
1 | find . -maxdepth 1 -exec du -sh {} + | sort -hr |
其中,常用的選項包括:
-r
:表示反向排序,即降序排列。-h
:表示按照易讀的大小進行,例如 KB、MB、GB。
刪除文件
使用
rm
命令:使用
rm
命令刪除文件。rm
是 “remove” 的縮寫。1
rm 文件名
例如,刪除名為
example.txt
的文件:1
rm example.txt
使用
rm
命令刪除多個文件:你可以使用
rm
命令來一次刪除多個文件。1
rm 文件1 文件2 文件3
例如:
1
rm file1.txt file2.txt file3.txt
使用通配符刪除文件:
你可以使用通配符來刪除符合特定模式的文件。
1
rm *.txt
這將刪除當前目錄中所有擴展名為
.txt
的文件。刪除目錄及其內容:
如果你刪除目錄及內容,你可以使用
-r
或-R
選項來遞歸刪除。1
rm -r 目錄名
例如,刪除名為
folder
的目錄及內容:1
rm -r folder
-rf
和-r
的區別
-r
選項(或--recursive
)單獨使用時,表示遞歸刪除,它會刪除指定目錄下的所有文件及子目錄,包括子目錄中的文件和子子目錄中的內容。但是,如果遇到無法刪除的文件或目錄,會提示用戶確認。-f
選項(或--force
)單獨使用時,表示強制刪除,它會忽略不存在的文件和不可寫的文件的權限,不會提示用戶進行二次確認的步驟。即使文件或目錄不存在,也不會顯示任何錯誤信息。
當你組合使用 -r
和 -f
時,即 -rf
,表示強制遞歸刪除。這意味著無論文件是否存在、是否只讀,以及是否包含子目錄,都將被刪除,而且不會提示用戶確認。