一、find命令的基本使用
find命令用於在指定目錄下查找文件和目錄,其基本語法如下:
find [path] [option] [expression]
path:表示要查找的目錄路徑,默認為當前目錄。
option:表示查找的選項,如-name等。
expression:表示要查找的文件名或表達式。
下面是幾個常用的選項和表達式:
1、-name選項
-name用於指定查找的文件名,支持通配符,如:
# 查找指定目錄下以.txt結尾的文件 find /path/to/dir -name "*.txt" # 查找當前目錄及子目錄下以myfile開頭的文件 find . -name "myfile*"
2、-type選項
-type用於指定查找的文件類型,其可選值包括:
- f:普通文件
- d:目錄文件
- b:塊設備文件
- c:字符設備文件
- p:管道文件
- l:符號鏈接文件
- s:套接字文件
例如,查找當前目錄及子目錄下的所有目錄:
find . -type d
3、-size選項
-size用於按文件大小查找,其參數表示要匹配的文件大小,支持單位:c,k,M,G等。例如,查找當前目錄及子目錄下大小大於1M的文件:
find . -size +1M
4、-mtime和-mmin選項
-mtime和-mmin用於按文件修改時間查找,其參數表示查找距今多少天或分鐘之內修改過的文件。例如,查找當前目錄及子目錄下最近7天被修改過的文件:
find . -mtime -7
5、-exec選項
-exec用於在查找到的文件上執行指定命令,其語法如下:
find [path] [option] [expression] -exec command {} \;
其中,{}表示查找到的文件名。例如,查找當前目錄及子目錄下的所有.sh文件,並將它們刪除:
find . -type f -name "*.sh" -exec rm {} \;
二、find命令的高級使用
1、組合選項
find命令支持多個選項的組合,例如,查找當前目錄及子目錄下所有以.log結尾且大小大於100M的文件:
find . -type f -name "*.log" -size +100M
2、查找空文件和目錄
查找空文件:
find . -type f -empty
查找空目錄:
find . -type d -empty
3、使用剪貼板複製查找結果
find命令的輸出結果可以直接複製到剪貼板中,例如,將查找結果複製到剪貼板:
find . -type f -name "*.txt" | xsel -bi
4、查找結果按修改時間排序
使用ls命令可以按修改時間排序,例如,查找當前目錄及子目錄下所有的txt文件,並按修改時間排序:
find . -type f -name "*.txt" -exec ls -lh {} \; | sort -k 6
三、注意事項
1、路徑名中的空格和特殊字符
如果要查找的路徑名中包含空格或特殊字符,需要使用引號或反斜杠進行轉義,例如:
find "/path with space/" -name "file with space.txt" find /path\ with\ space/ -name file\ with\ space.txt
2、符號鏈接問題
find命令默認會解析符號鏈接,因此如果要查找符號鏈接文件本身,需要使用-l選項。
find . -type l
3、權限問題
find命令只能搜索有權限的文件和目錄,使用sudo命令可以搜索系統文件和目錄。
以上就是關於Linux命令通過find命令查找文件和目錄的詳細講解,希望對你有所幫助。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/234067.html