오래된 백업을 삭제하려고 하는데 내부에서 "cifs3bee" 파일을 찾았지만 삭제할 방법을 찾을 수 없습니다. (삭제할 수 없기 때문에 전체 디렉토리 트리가 삭제되는 것을 방지합니다.) 실행하면 ls -l
다음과 같은 결과가 나타납니다.
total 1
-rwxr-xr-x 1 jgw87 root 307 Oct 30 2014 cifs3bee
달리면 file cifs3bee
가끔 다음과 같은 결과가 나타납니다.
cifs3bee: writable, regular file, no read permission
하지만 때로는 다음과 같은 결과를 얻습니다.
cifs3bee: ERROR: cannot open `cifs3bee' (No such file or directory)
이는 기본적으로 rm, chmod, lsattr, less 또는 기타 명령(루트로 sudo를 실행하더라도)을 실행할 때 항상 발생하는 오류와 같습니다. " "도 시도했지만 파일이 계속 표시되고 상위 디렉토리의 " "이 디렉토리가 비어 있지 않다고 실패 하더라도 echo "x" > cifs3bee
여전히 No such file or directory
오류가 발생합니다.ls
rm -rf
무슨 일이 일어나고 있나요? 이 문제를 해결하는 방법을 아는 사람이 있나요? 파일 이름이 스크랩할 파일에 대해 설정한 패턴과 일치하지 않기 때문에 이 파일이 어떻게 내 백업에 들어왔는지조차 모르겠습니다.
편집: 죄송합니다. 시스템 사양을 잊어버렸습니다. 저는 Linux Mint 17을 실행하고 Samba를 통해 설치된 원격 Windows 서버에서 작업하고 있습니다. (서버 사양은 모르겠습니다.)
편집: 이것을 실행했는데 strace head cifs3bee
결과는 다음과 같습니다.
execve("/usr/bin/head", ["head", "cifs3bee"], [/* 69 vars */]) = 0
brk(0) = 0x11f0000
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8ccbe8f000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/usr/local/cuda-5.0/lib/tls/x86_64/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/usr/local/cuda-5.0/lib/tls/x86_64", 0x7fff275aa470) = -1 ENOENT (No such file or directory)
open("/usr/local/cuda-5.0/lib/tls/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/usr/local/cuda-5.0/lib/tls", 0x7fff275aa470) = -1 ENOENT (No such file or directory)
open("/usr/local/cuda-5.0/lib/x86_64/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/usr/local/cuda-5.0/lib/x86_64", 0x7fff275aa470) = -1 ENOENT (No such file or directory)
open("/usr/local/cuda-5.0/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/usr/local/cuda-5.0/lib", 0x7fff275aa470) = -1 ENOENT (No such file or directory)
open("/home/jgw87/Software/root/lib/tls/x86_64/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/home/jgw87/Software/root/lib/tls/x86_64", 0x7fff275aa470) = -1 ENOENT (No such file or directory)
open("/home/jgw87/Software/root/lib/tls/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/home/jgw87/Software/root/lib/tls", 0x7fff275aa470) = -1 ENOENT (No such file or directory)
open("/home/jgw87/Software/root/lib/x86_64/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/home/jgw87/Software/root/lib/x86_64", 0x7fff275aa470) = -1 ENOENT (No such file or directory)
open("/home/jgw87/Software/root/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/home/jgw87/Software/root/lib", {st_mode=S_IFDIR|0770, st_size=32768, ...}) = 0
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=168641, ...}) = 0
mmap(NULL, 168641, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f8ccbe65000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\37\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1840928, ...}) = 0
mmap(NULL, 3949248, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8ccb8aa000
mprotect(0x7f8ccba65000, 2093056, PROT_NONE) = 0
mmap(0x7f8ccbc64000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1ba000) = 0x7f8ccbc64000
mmap(0x7f8ccbc6a000, 17088, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f8ccbc6a000
close(3) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8ccbe64000
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8ccbe62000
arch_prctl(ARCH_SET_FS, 0x7f8ccbe62740) = 0
mprotect(0x7f8ccbc64000, 16384, PROT_READ) = 0
mprotect(0x608000, 4096, PROT_READ) = 0
mprotect(0x7f8ccbe91000, 4096, PROT_READ) = 0
munmap(0x7f8ccbe65000, 168641) = 0
brk(0) = 0x11f0000
brk(0x1211000) = 0x1211000
open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=2919792, ...}) = 0
mmap(NULL, 2919792, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f8ccb5e1000
close(3) = 0
open("cifs3bee", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=2570, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8ccbe8e000
read(3, "# Locale name alias data base.\n#"..., 4096) = 2570
read(3, "", 4096) = 0
close(3) = 0
munmap(0x7f8ccbe8e000, 4096) = 0
open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_US.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_US/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/en_US.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/en_US.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/en_US/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/en.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/en.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/en/LC_MESSAGES/coreutils.mo", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=619, ...}) = 0
mmap(NULL, 619, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f8ccbe8e000
close(3) = 0
open("/usr/lib/charset.alias", O_RDONLY|O_NOFOLLOW) = -1 ENOENT (No such file or directory)
write(2, "head: ", 6head: ) = 6
write(2, "cannot open \342\200\230cifs3bee\342\200\231 for r"..., 38cannot open ‘cifs3bee’ for reading) = 38
open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_US.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/en_US.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/en_US.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/en.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/en.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
write(2, ": No such file or directory", 27: No such file or directory) = 27
write(2, "\n", 1
) = 1
close(1) = 0
close(2) = 0
exit_group(1) = ?
+++ exited with 1 +++
불행히도 나는 이것을 어떻게 설명해야 할지 모르겠습니다. 도움이 필요하세요?
답변1
먼저 파일 이름 뒤에 공백이 있는지 알고 싶습니다. 자동 완성을 위해 Tab 키를 입력 ls "cifs
하고 눌러 이를 테스트합니다(물론 큰 가정인 Linux 시스템을 사용한다고 가정). 그래도 문제가 해결되지 않으면 파일을 삭제해 보세요 inode
.
이를 수행하는 방법에 대한 좋은 설명은 다음과 같습니다.inode 번호가 있는 파일 삭제/제거
이 프로세스의 핵심 사항에는
먼저 파일의 인덱스 노드를 얻는 것이 포함됩니다.ls -il
그런 다음 손에 있는 inode를 사용하여 파일을 삭제해 보십시오.
find . -inum [inode-number] -exec rm -i {} \;</b>
답변2
여전히 해당 파티션에서 파일을 이동할 수 있습니다. 방해가 되지 않는 곳으로 옮겨 보십시오. 그런데 디스크나 파일 시스템 오류인 것 같습니다. 다음으로 하고 싶은 일은 fsck입니다.
또한 strace echo "abcd">file을 시도하고 "해당 파일이나 디렉터리가 없습니다"와 같은 오류를 실제로 생성하는 시스템 호출이 무엇인지 알아보세요. 존재하지 않으면 생성되어야 하므로 다른 것이 존재하지 않기 때문입니다. , bash 인터프리터 또는 상위 디렉토리 또는 echo는 echo가 아니라 별칭입니다.
또 다른 가능성은 무언가가 파일을 삭제/복원했기 때문에 운이 좋지 않아 파일을 보는 동안 삭제되고 다시 생성되는 것입니다.
또 다른 가능성은 파일 시스템에 특정한 것입니다. 다른 사람들은 파일 이름에 "cifs"가 있으면 이러한 가능성을 시사한다고 올바르게 지적했습니다.