# 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
是的,这是完全正常的。 /proc虚拟文件系统为系统上的进程和内存信息提供了一个接口。 这允许像top(1)这样的工具使用正常的文件系统调用来检查进程和内存,而不是在系统内存中进行非可移植的操作。 此文件系统中的信息随着系统状态的变化而不断变化。 在您的示例中,进程21944的文件描述符4在find命令在目录中find它之前但在它可以读取之前closures。
由于/ proc不是一个真正的文件系统,你通常希望避免它在你的文件系统的任何遍历。 这里有一些关于在Linux中使用/ proc的更多信息。
如果您担心“没有这样的文件或目录”消息,在这种情况下,这意味着这些进程的文件描述符在find命令操作期间被closures或退出进程(这也意味着文件描述符已closures)。 你也可以得到这个信息来破坏符号链接。