"buscar: .: No existe tal archivo o directorio" mientras se usa buscar en el directorio actual

"buscar: .: No existe tal archivo o directorio" mientras se usa buscar en el directorio actual

El comando Buscar parece no funcionar en absoluto. Por ejemplo, estoy en un directorio donde absolutamente hay un archivo llamado index.php y ejecuto esto:

[root@server htdocs]# find . -name "index.php"
find: .: No such file or directory

Siempre recibo el error "no existe tal archivo o directorio".

No importa qué ruta defina o qué archivo busque, siempre aparece este error. Estoy bastante seguro de que estoy pasando por alto algo muy simple. ¿Alguien puede señalar qué estoy haciendo mal?

[root@server htdocs]# pwd
/srv/www/htdocs
[root@server htdocs]# type -a find
find is /usr/bin/find
[root@server htdocs]# ls -la | grep index.php
-rw-rw-r--  1 andris users  413 Sep  1  2013 index.php
[root@server htdocs]# find . -name "index.php"
find: .: No such file or directory
[root@server htdocs]# find .
.
find: .: No such file or directory

[root@server htdocs]# stat .
  File: `.'
  Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: ca00h/51712d    Inode: 155686      Links: 12
Access: (0775/drwxrwxr-x)  Uid: (  504/  andris)   Gid: (  100/   users)
Access: 2014-06-17 19:37:22.000000000 +0000
Modify: 2014-06-08 21:06:16.000000000 +0000
Change: 2014-06-08 21:06:16.000000000 +0000

[root@server htdocs]# find --version
GNU find version 4.2.27
Features enabled: D_TYPE O_NOFOLLOW(enabled) LEAF_OPTIMISATION SELINUX

strace find .producción:https://gist.github.com/andrisp/f3adaf740548eead33da

[root@server htdocs]# find . -noleaf -name "index.php"
find: .: No such file or directory

Respuesta1

Según su straceresultado, y no tengo idea del motivo, la open()función prefija los nombres de archivo con /proc/:

open(".", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 4
fcntl64(4, F_SETFD, FD_CLOEXEC) = 0
getdents64(4, /* 21 entries */, 32768) = 664
getgid32() = 0
stat64("/proc/index.php", 0xbfc53bd0) = -1 ENOENT (No such file or directory)
getgid32() = 0
stat64("/proc/.svn", 0xbfc53bd0) = -1 ENOENT (No such file or directory)
getgid32() = 0
stat64("/proc/init-dist.php", 0xbfc53bd0) = -1 ENOENT (No such file or directory)
getgid32() = 0
stat64("/proc/landing-page.html", 0xbfc53bd0) = -1 ENOENT (No such file or directory)
getgid32() = 0
[...]
stat64("/proc/js", 0xbfc53bd0) = -1 ENOENT (No such file or directory)
getgid32() = 0
stat64("/proc/extras", 0xbfc53bd0) = -1 ENOENT (No such file or directory)
getgid32() = 0
stat64("/proc/sitemaps", 0xbfc53bd0) = -1 ENOENT (No such file or directory)
getdents64(4, /* 0 entries */, 32768) = 0

Respuesta2

He visto que esto sucede en Mac cuando el directorio está en un medio extraíble que se eliminó y se volvió a agregar desde que se abrió la ventana de la terminal. No puedo explicar por qué (probablemente tenga que ver con la información almacenada en caché cuando se inició la sesión del terminal), pero fue reproducible. Simplemente reinicié la sesión del terminal y todo estuvo bien.

Respuesta3

Pruébelo con la ruta absoluta como:

   sudo find /where/your_file_is/located/ -iname "index.php"

Y como ya se mencionó anteriormente, es posible que no tenga permisos. ¿Qué sucede si usted:

ls . 

¿Tu caparazón sabe qué hacer con el punto?

Respuesta4

Es posible que no tenga permiso de ejecución para su usuario en el directorio desde el que está buscando. ¿Tiene permiso de lectura y ejecución?

información relacionada