我正在對 find 命令進行一些練習,但是當我嘗試使用-exec
它的選項時,我沒有得到預期的結果。我寫的命令沒有-exec
選項就可以作業,如下所示:
$ find ~ \( -type f -not -perm 0600 \) -or \( -type d -name 'D*' \)
/home/baki/.bashrc
/home/baki/.bash_logout
/home/baki/.cache/motd.legal-displayed
/home/baki/.config/wslu/baseexec
/home/baki/.config/wslu/oemcp
/home/baki/.gitconfig
/home/baki/.landscape/sysinfo.log
/home/baki/.motd_shown
/home/baki/.profile
/home/baki/.ssh/known_hosts
/home/baki/.sudo_as_admin_successful
/home/baki/ssh_start
/home/baki/token
但是,當我將-exec
選項添加到命令末尾時,它不會給出任何輸出:
find ~ \( -type f -not -perm 0600 \) -or \( -type d -name 'D*' \) -exec ls -l '{}' ';'
我已經搜索過它,但我找不到可以解決我的問題的有用資訊。
我的命令是錯誤的還是與其他有關?
感謝您的幫助。
uj5u.com熱心網友回復:
默認-and
操作的優先級高于-or
。使用額外的括號:
find ~ \( \( -type f -not -perm 0600 \) -or \( -type d -name 'D*' \) \) -exec ls -l '{}' ';'
在這種情況下,您可能可以省略內括號。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/470207.html