# find / -user root -perm -4000 -print
find: /proc/21944/task/21944/fd/4: No such file or directory
find: /proc/21944/fd/4: No such file or directory
/sbin/unix_chkpwd
/sbin/pam_timestamp_check
/bin/ping
/bin/ping6
/bin/su
/bin/mount
/bin/umount
/lib/dbus-1/dbus-daemon-launch-helper
/usr/sbin/usernetctl
/usr/sbin/suexec
/usr/sbin/userhelper
/usr/libexec/openssh/ssh-keysign
/usr/bin/sudo
/usr/bin/newgrp
/usr/bin/chsh
/usr/bin/passwd
/usr/bin/crontab
/usr/bin/chage
/usr/bin/sudoedit
/usr/bin/chfn
/usr/bin/gpasswd
答案1
是的,这完全正常。/proc
虚拟文件系统为系统上的进程和内存信息提供了接口。这允许 top(1) 等工具使用正常的文件系统调用来检查进程和内存,而不是在系统内存中进行不可移植的混乱。此文件系统中的信息会随着系统状态的变化而不断变化。在您的示例中,进程 21944 的文件描述符 4 在 find 命令在目录中找到它之后但在读取它之前被关闭。
由于 /proc 不是真正的文件系统,因此您通常希望躲开它在任何文件系统遍历中。以下是有关在 Linux 中使用 /proc。
答案2
如果您担心“没有这样的文件或目录”消息,在这种情况下,这意味着这些进程的文件描述符在命令操作期间已关闭find
或进程已退出(这也意味着文件描述符已关闭)。您还可以获取有关损坏的符号链接的消息。