一、查找文件
1、查找指定文件名的文件
find / -name "file.txt"
上述代碼表示在根目錄下查找文件名為file.txt的文件,如果需要在其他目錄下查找,則將/替換成目標目錄。
2、通配符匹配查找文件
find /dirs -name "file.*"
上述代碼表示在dirs目錄下查找以file開頭,後面跟着任意字符的文件。
3、查找文件大小在指定範圍內的文件
find /dirs -size +10M -size -100M
上述代碼表示在dirs目錄下查找文件大小在10MB和100MB之間的文件。
4、按照時間查找文件
find / -ctime 7
上述代碼表示在根目錄下查找7天內更改的文件。
5、按照文件類型查找文件
find / -type f
上述代碼表示在根目錄下查找普通文件。
二、刪除文件
1、刪除指定文件
find / -name "file.txt" -exec rm -f {} \;
上述代碼表示在根目錄下查找名為file.txt的文件並刪除。
2、刪除匹配的文件
find / -name "*.txt" -delete
上述代碼表示在根目錄下查找文件名以.txt結尾的文件並逐一刪除。
三、更改文件權限
1、更改所有者權限
find / -name "file.txt" -exec chown user:group {} \;
上述代碼表示在根目錄下查找名為file.txt的文件並將所有權轉移給user:group。
2、更改文件權限
find / -name "file.txt" -exec chmod 755 {} \;
上述代碼表示在根目錄下查找名為file.txt的文件並更改其權限為755。
四、查找目錄
1、查找指定目錄名的目錄
find / -type d -name "dir"
上述代碼表示在根目錄下查找名為dir的目錄。
2、按照深度查找目錄
find / -type d -name "dir" -depth 2
上述代碼表示在根目錄下查找名為dir的目錄,深度為2。
3、查找空目錄
find / -type d -empty
上述代碼表示在根目錄下查找空目錄。
五、對找到的文件執行命令
1、對找到的文件執行命令
find / -name "*.txt" -exec grep "keyword" {} \;
上述代碼表示在根目錄下查找文件名以.txt結尾的文件並在其中搜索關鍵詞keyword。
2、對找到的文件進行批量重命名
find /path -name "*.txt" -execdir mv {} newname.txt \;
上述代碼表示在path目錄下查找文件名以.txt結尾的文件並對它們進行批量重命名為newname.txt。
六、使用篩選器查找文件
1、使用OR邏輯來組合篩選器
find / -name "*.txt" \( -user user1 -o -user user2 \)
上述代碼表示在根目錄下查找屬於用戶user1或user2的所有.txt文件。
2、使用AND邏輯來組合篩選器
find / -name "*.txt" -user user1 -group group1
上述代碼表示在根目錄下查找屬於用戶user1且屬於組group1的所有.txt文件。
3、使用NOT邏輯來排除某些文件
find / -name "*.txt" ! -user user1
上述代碼表示在根目錄下查找所有.txt文件,但將所有屬於user1的文件排除在外。
七、使用find命令的注意事項
1、使用find命令時要注意權限問題,某些目錄和文件可能需要管理員權限才能訪問。
2、使用exec參數時要特別小心,防止誤刪重要文件。
3、使用find命令的搜索範圍過大時,可能會耗費大量時間和系統資源。
4、使用通配符時要小心,不要匹配到不必要的文件。
5、建議使用-man參數了解更多命令使用幫助。
原創文章,作者:YRULY,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/360750.html