在 SLES 15 中查找排除 snapthost 目录

在 SLES 15 中查找排除 snapthost 目录

我正在使用以下命令搜索可执行文件名 pxe

find / -type f -executable -print | grep pxe$

这在 RHEL 中运行良好,但在 SLES 中,快照目录会搞乱搜索。如何在搜索中排除快照目录。

我尝试过这些组合但确实有效。

localhost:~ # find / -type f -executable -print | grep pxe$
find: File system loop detected; ‘/.snapshots/1/snapshot’ is part of the same file system loop as ‘/’.
/root/pxe
/root/xyx/pxe
/pxe
localhost:~ # find / -type f -executable -print -not -path "*/.snapshots/*" | grep pxe$
find: File system loop detected; ‘/.snapshots/1/snapshot’ is part of the same file system loop as ‘/’.
/root/pxe
/root/xyx/pxe
/pxe
localhost:~ #
localhost:~ #
localhost:~ # find / -type f -executable -print -not -path "/.snapshots/*" | grep pxe$
find: File system loop detected; ‘/.snapshots/1/snapshot’ is part of the same file system loop as ‘/’.
/root/pxe
/root/xyx/pxe
/pxe

我不希望在运行 find 时显示 /.snapshots/。有什么建议吗?

快照目录位于 /

test:~ # cd /
test:/ # ls -la
total 52588
drwxr-xr-x    1 root root      224 Apr  6 16:28 .
drwxr-xr-x    1 root root      224 Apr  6 16:28 ..
-rw-r--r--    1 root root        0 Mar 30 15:03 .acce
drwxr-x---    1 root root       38 Mar 20 12:25 .snapshots
-rwxrwxrwx    1 root root 26559432 Oct 14 12:23 pxe

答案1

与所有 Linux 一样,man应该是您的第一站,通常只需找到与您要查找的内容相匹配的术语即可。man find/skip产生:

-修剪

正确;如果文件是目录,则不要深入其中。如果给出了 -depth,则 -prune 无效。由于 -delete 隐含 -depth,因此不能同时使用 -prune 和 -delete。例如,要跳过目录 src/emacs 及其下的所有文件和目录,并打印找到的其他文件的名称,请执行以下操作:

find . -path ./src/emacs -prune -o -print

相关内容