為什麼要謹慎使用Linux find命令?
最近有朋友提醒我有一個有用的選項來更加謹慎地執行 find 命令,它就是 -ok。除了一個重要的區別之外,它的工作方式與 -exec 相似,它使 find 命令在執行指定的操作之前請求許可權。
這有一個例子。如果你使用 find 命令查詢檔案並刪除它們,你可能使用的是下面的命令:
$ find . -name runme -exec rm {} \;
在當前目錄及其子目錄中中任何名為 “runme” 的檔案都將被立即刪除 —— 當然,你要有許可權刪除它們。改用 -ok 選項,你會看到類似這樣的東西,但 find 命令將在刪除檔案之前會請求許可權。回答 y 代表 “yes” 將允許 find 命令繼續並逐個刪除檔案。
$ find . -name runme -ok rm {} \;
< rm ... ./bin/runme > ?
-execdir 命令也是一個選擇
另一個可以用來修改 find 命令列為,並可能使其更可控的選項是 -execdir 。-exec 會執行指定的任何命令,而 -execdir 則從檔案所在的目錄執行指定的命令,而不是在執行find` 命令的目錄執行指定的命令。這是兩個它的例子:
$ pwd
/home/shs
$ find . -name runme -execdir pwd \;
/home/shs/bin
$ find . -name runme -execdir ls \;
ls rm runme
到現在為止還挺好。但要記住的是,-execdir 也會在匹配檔案的目錄中執行該命令。如果執行下面的命令,並且目錄包含一個名為 “ls” 的檔案,那麼即使該檔案沒有執行許可權,它也將執行該檔案。使用 -exec 或 -execdir 類似於透過 source 來執行命令。
$ find . -name runme -execdir ls \;
Running the /home/shs/bin/ls file
$ find . -name runme -execdir rm {} \;
This is an imposter rm command
$ ls -l bin
total 12
-r-x------ 1 shs shs 25 Oct 13 18:12 ls
-rwxr-x--- 1 shs shs 36 Oct 13 18:29 rm
-rw-rw-r-- 1 shs shs 28 Oct 13 18:55 runme
$ cat bin/ls
echo Running the $0 file
$ cat bin/rm
echo This is an imposter rm command
-okdir 選項也會請求許可權
要更謹慎,可以使用 -okdir 選項。類似 -ok,該選項將請求許可權來執行該命令。
$ find . -name runme -okdir rm {} \;
< rm ... ./bin/runme > ?
你也可以小心地指定你想用的命令的完整路徑,以避免像上面那樣的冒牌命令出現的任何問題。
$ find . -name runme -execdir /bin/rm {} \
find 命令除了預設列印之外還有很多選項,有些可以使你的檔案搜尋更精確,但謹慎一點總是好的。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69940641/viewspace-2658524/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux需要謹慎使用的幾個命令Linux
- oracle中要謹慎使用update交叉更新!Oracle
- java流操作要謹慎Java
- AIX系統謹慎使用reboot命令AIboot
- 【Lambda、SteamAPI】謹慎使用流API
- DBA要謹慎關閉資料庫(轉)資料庫
- 請謹慎使用sp_executesqlSQL
- API介面公司要考察的核心,讓你謹慎合作API
- 為什麼要虛擬化,為什麼要容器,為什麼要Docker,為什麼要K8S?DockerK8S
- Linux是什麼系統?為什麼要學習Linux?Linux
- 大型專案開發:謹慎使用智慧指標指標
- JAVA基礎:謹慎使用Date和Time類(轉)Java
- 技術人,請謹慎跳槽!
- 為什麼要學習Linux系統?Linux
- Windows如此普及,為什麼要學LinuxWindowsLinux
- 假冒“國產”Linux為什麼要狠批?Linux
- 在 Linux中find命令使用技巧Linux
- 自媒體培訓行業水很深,入行新人要謹慎選擇行業
- 為什麼要學習Linux?學習Linux有什麼好處?Linux
- 謹慎處理 Service Worker 的更新
- UNIX下VG遷移(謹慎) - 轉
- 升級oracle一定要謹慎Oracle
- AIX強制關機需要謹慎AI
- linux find命令Linux
- linux find 命令Linux
- linux find 命令!Linux
- 為什麼要removeREM
- 為什麼要敏捷?敏捷
- 做DBA 一定要謹慎小心地執行每一個命令
- linux find 命令和 while 命令聯合使用案例LinuxWhile
- 為什麼學習python要掌握Linux?PythonLinux
- Linux下ulimit、find命令使用者LinuxMIT
- 為什麼Linux的htop命令完勝top命令Linux
- 高峰期謹慎編譯業務物件編譯物件
- 新程式語言選擇需謹慎
- 搞程式有風險 修bug需謹慎
- 什麼是Nginx?Linux為什麼使用Nginx?NginxLinux
- linux/unix find命令Linux