为什么发现命令对已排除的路径给出“权限被拒绝”错误?

blu*_*ray 4 command-line find

如果我运行(使用 sudo)

\n
sudo find / -xdev -type f ! -path '/home/blueray/*' ! -path '/timeshift/*' > log.txt\n
Run Code Online (Sandbox Code Playgroud)\n

它可以正常工作,没有任何问题。

\n

但是,如果我在没有 sudo 的情况下运行相同的命令,我会在控制台中收到一些错误。搜索结果log.txt是正确的(没有问题)。但我不明白错误消息。

\n
% find / -xdev -type f ! -path '/home/blueray/*' ! -path '/timeshift/*' > log.txt\nfind: \xe2\x80\x98/timeshift/snapshots/2022-01-09_22-00-46/localhost/etc/polkit-1/localauthority\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/timeshift/snapshots/2022-01-09_22-00-46/localhost/etc/ssl/private\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/timeshift/snapshots/2022-01-09_22-00-46/localhost/etc/cups/ssl\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/timeshift/snapshots/2022-01-09_22-00-46/localhost/var/log/private\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/timeshift/snapshots/2022-01-09_22-00-46/localhost/var/log/speech-dispatcher\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/timeshift/snapshots/2022-01-09_22-00-46/localhost/var/spool/rsyslog\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/timeshift/snapshots/2022-01-09_22-00-46/localhost/var/spool/cups\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/timeshift/snapshots/2022-01-09_22-00-46/localhost/var/spool/cron/crontabs\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/timeshift/snapshots/2022-01-09_22-00-46/localhost/var/lib/apt/lists/partial\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/timeshift/snapshots/2022-01-09_22-00-46/localhost/var/lib/colord/.cache\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/timeshift/snapshots/2022-01-09_22-00-46/localhost/var/lib/AccountsService/users\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/timeshift/snapshots/2022-01-09_22-00-46/localhost/var/lib/bluetooth/5C:F3:70:93:BD:85\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/timeshift/snapshots/2022-01-09_22-00-46/localhost/var/lib/lightdm-data/lightdm\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/timeshift/snapshots/2022-01-09_22-00-46/localhost/var/lib/polkit-1\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/timeshift/snapshots/2022-01-09_22-00-46/localhost/var/lib/udisks2\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/timeshift/snapshots/2022-01-09_22-00-46/localhost/var/lib/NetworkManager\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/timeshift/snapshots/2022-01-09_22-00-46/localhost/var/lib/private\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/timeshift/snapshots/2022-01-09_22-00-46/localhost/var/lib/lightdm\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/timeshift/snapshots/2022-01-09_22-00-46/localhost/var/lib/tor\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/timeshift/snapshots/2022-01-09_22-00-46/localhost/var/cache/private\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/timeshift/snapshots/2022-01-09_22-00-46/localhost/var/cache/apparmor/26b63962.0\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/timeshift/snapshots/2022-01-09_22-00-46/localhost/var/cache/lightdm/dmrc\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/timeshift/snapshots/2022-01-09_22-00-46/localhost/var/cache/cups\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/timeshift/snapshots/2022-01-09_22-00-46/localhost/var/cache/ldconfig\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/timeshift/snapshots/2022-01-09_22-00-46/localhost/var/tmp/systemd-private-84c1e6e852b747ea9d34d17ca664b32b-tor@default.service-frAbZe\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/timeshift/snapshots/2022-01-09_22-00-46/localhost/var/tmp/systemd-private-84c1e6e852b747ea9d34d17ca664b32b-systemd-logind.service-EWXwaj\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/timeshift/snapshots/2022-01-09_22-00-46/localhost/var/tmp/systemd-private-84c1e6e852b747ea9d34d17ca664b32b-ModemManager.service-0wY2Hh\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/timeshift/snapshots/2022-01-09_22-00-46/localhost/var/tmp/systemd-private-84c1e6e852b747ea9d34d17ca664b32b-colord.service-HLWVQf\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/timeshift/snapshots/2022-01-09_22-00-46/localhost/var/tmp/systemd-private-84c1e6e852b747ea9d34d17ca664b32b-upower.service-ecD4ii\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/timeshift/snapshots/2022-01-09_22-00-46/localhost/var/tmp/systemd-private-84c1e6e852b747ea9d34d17ca664b32b-systemd-resolved.service-Qxjpij\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/timeshift/snapshots/2022-01-09_22-00-46/localhost/var/tmp/systemd-private-84c1e6e852b747ea9d34d17ca664b32b-systemd-timesyncd.service-Kf61Zi\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/timeshift/snapshots/2022-01-09_22-00-46/localhost/root\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/timeshift/snapshots/2022-01-09_22-00-46/localhost/boot/efi\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/etc/libvirt/secrets\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/etc/polkit-1/localauthority\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/etc/ssl/private\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/etc/cups/ssl\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/var/log/private\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/var/log/speech-dispatcher\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/var/spool/rsyslog\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/var/spool/cups\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/var/spool/cron/crontabs\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/var/lib/apt/lists/partial\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/var/lib/colord/.cache\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/var/lib/AccountsService/users\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/var/lib/portables\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/var/lib/libvirt/qemu\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/var/lib/machines\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/var/lib/bluetooth/5C:F3:70:93:BD:85\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/var/lib/lightdm-data/lightdm\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/var/lib/polkit-1\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/var/lib/udisks2\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/var/lib/NetworkManager\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/var/lib/private\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/var/lib/lightdm\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/var/lib/tor\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/var/lib/fwupd/gnupg\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/var/cache/apt/archives/partial\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/var/cache/private\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/var/cache/apparmor/26b63962.0\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/var/cache/lightdm/dmrc\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/var/cache/cups\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/var/cache/ldconfig\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/var/tmp/systemd-private-c9d7a83d6f844d998e8423d94d48ce3f-ModemManager.service-G72K7i\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/var/tmp/systemd-private-c9d7a83d6f844d998e8423d94d48ce3f-colord.service-2B8Ofg\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/var/tmp/systemd-private-c9d7a83d6f844d998e8423d94d48ce3f-tor@default.service-TaP1xi\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/var/tmp/systemd-private-c9d7a83d6f844d998e8423d94d48ce3f-systemd-logind.service-rnYjPi\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/var/tmp/systemd-private-c9d7a83d6f844d998e8423d94d48ce3f-systemd-timesyncd.service-U7G6Lf\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/var/tmp/systemd-private-c9d7a83d6f844d998e8423d94d48ce3f-systemd-resolved.service-ABf5Xe\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/var/tmp/systemd-private-c9d7a83d6f844d998e8423d94d48ce3f-upower.service-WW9yYi\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/root\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/lost+found\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/tmp/systemd-private-c9d7a83d6f844d998e8423d94d48ce3f-upower.service-F7Rtjf\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/tmp/systemd-private-c9d7a83d6f844d998e8423d94d48ce3f-tor@default.service-nYCXFi\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/tmp/systemd-private-c9d7a83d6f844d998e8423d94d48ce3f-colord.service-qGi0sf\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/tmp/systemd-private-c9d7a83d6f844d998e8423d94d48ce3f-systemd-logind.service-FhyyUh\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/tmp/systemd-private-c9d7a83d6f844d998e8423d94d48ce3f-systemd-resolved.service-luOB7f\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/tmp/systemd-private-c9d7a83d6f844d998e8423d94d48ce3f-ModemManager.service-d1MZ7g\xe2\x80\x99: Permission denied\nfind: \xe2\x80\x98/tmp/systemd-private-c9d7a83d6f844d998e8423d94d48ce3f-systemd-timesyncd.service-79KkRe\xe2\x80\x99: Permission denied\n
Run Code Online (Sandbox Code Playgroud)\n

为什么它说find: \xe2\x80\x98/timeshift/snapshots/....\xe2\x80\x99: Permission denied即使我! -path '/timeshift/*'在我的 find 命令中使用了。根据我的常识,find 命令不需要关心已从搜索中排除的目录的权限。

\n

那么,到底发生了什么以及如何在不使用 sudo 的情况下消除这些错误消息。我的意思是,find 命令中是否有任何位置参数表示“先排除然后搜索”或类似的内容。

\n

Kus*_*nda 10

使用-path,您可以测试当前路径名是否与模式匹配,然后排除它或继续处理它。它不会停止find进入子目录。

要修剪搜索树(从搜索中删除目录),请使用-prune.

find / -xdev \
    \( -path '/home/blueray' -o -path '/timeshift' \) -prune -o \
    -type f -print
Run Code Online (Sandbox Code Playgroud)

这会修剪与两个测试之一匹配的路径-path,并输出与常规文件对应的所有其他路径名。不会输入修剪过的路径find,因此在上面的命令中, 下的任何内容/home/blueray或什/timeshift至不会被 考虑find