찾기 명령이 전혀 작동하지 않는 것 같습니다. 예를 들어, 나는 index.php라는 파일이 있는 디렉토리에 있고 다음을 실행합니다.
[root@server htdocs]# find . -name "index.php"
find: .: No such file or directory
나는 항상 이러한 파일이나 디렉토리 오류가 발생하지 않습니다.
어떤 경로를 정의하든, 어떤 파일을 검색하든 항상 이 오류가 발생합니다. 나는 매우 간단한 것을 간과하고 있다고 확신합니다. 누군가 내가 뭘 잘못하고 있는지 지적할 수 있나요?
[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 .
산출:https://gist.github.com/andrisp/f3adaf740548eead33da
[root@server htdocs]# find . -noleaf -name "index.php"
find: .: No such file or directory
답변1
귀하의 출력에 따르면 strace
이유에 대해 전혀 모릅니다. open()
함수 접두사 파일 이름은 다음과 같습니다 /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
답변2
터미널 창이 열린 후 제거되고 읽혀진 이동식 미디어에 디렉토리가 있을 때 Mac에서 이런 일이 발생하는 것을 보았습니다. 이유는 설명할 수 없지만(아마도 터미널 세션이 시작될 때 캐시된 정보와 관련이 있을 것임) 재현 가능했습니다. 방금 터미널 세션을 다시 시작했는데 모든 것이 정상이었습니다.
답변3
다음과 같은 절대 경로를 사용해 보십시오.
sudo find /where/your_file_is/located/ -iname "index.php"
그리고 위에서 이미 언급했듯이 권한이 없을 수도 있습니다. 다음과 같은 경우에는 어떻게 되나요?
ls .
쉘이 점으로 무엇을 해야할지 알고 있습니까?
답변4
검색 중인 디렉터리에 대한 사용자의 실행 권한이 없을 수 있습니다. 읽기 및 실행 권한이 있습니까?