파일을 삭제할 수 없습니다-해당 파일이나 디렉토리가 없습니다


12

한 번 삭제했지만 유령은 여전히 ​​있습니다 :)

파일이 있지만 시스템이 없다고 말하는 파일을 어떻게 삭제합니까?

권한 탭-변경을 시도했지만 자동으로 재설정됩니다. "삭제"를 클릭하면 발생합니다


이것은 경고입니다. "삭제"를 선택하면 무엇을 말합니까?
Marty Fried

파일을 마우스 오른쪽 버튼으로 클릭하고 속성을 선택한 다음 권한 탭을 엽니 다. 스크린 샷을 찍어 여기에 게시하십시오.
Eric Carvalho

다른 파일을 휴지통으로 옮길 수 있습니까? 삭제하는 파일이 홈 파일 시스템과 동일한 파일 시스템에 있습니까? ~ / .Trash / 디렉토리가 있습니까?
존 S 그루버

존, 다른 파일을 휴지통으로 이동시킬 수 있는데,이 파일 만 있으면 문제가 발생합니다.
Valeriu

터미널에서 삭제하려고 했습니까? sudo rm panorama.jpg
David M. Sousa

답변:


3

나는 이것이 오래되었다는 것을 알고 있지만 파일이 아닌 폴더에만 문제가 있습니다. 여기에 제안 된 방법 중 어느 것도 효과가 없었습니다.

삭제할 수없는 것과 동일한 위치에 동일한 이름으로 폴더를 만들어 문제를 해결했습니다. 폴더가 올바르게 작성되었으며 기존 폴더가 아닌 "바 꾸었습니다". 그런 다음 새 폴더를 제거하고 문제가 사라졌습니다. 그렇게 간단합니다.


이것이 실제로 전체 문제를 제거하는 경우 가장 쉬운 해결책입니다.
lightsout

2

나는 같은 문제가 있었다. 파티션의 인덱스 항목에 문제가있었습니다. 시스템이 이중 부팅이거나 Windows XP 또는 Windows 7의 라이브 CD를 넣은 경우 Windows를 시작하여 문제를 해결 한 후 다음 단계를 수행하십시오.

  1. COMMAND PROMPT를 검색 cmd하십시오.
  2. chkdsk /f/x D: (여기서 D는 드라이브 문자입니다).
  3. Y / N을 요구하면 Y를 누르십시오
  4. 드라이브에서 삭제하려는 파일을 확인하십시오. 삭제되거나 삭제 될 수 있습니다.

100 % 일


2

경고 :이 지침은을 사용해야 debugfs합니다. 그들은 데이터가 손실 될 수 있습니다.

원래 문제에 맞게 조정되었으며이 페이지의 향후 방문자에게 정확하거나 정확하지 않을 수 있습니다. 데이터 손실은 복구 할 수 없거나에 의해 악화 될 수 있습니다 fsck.

손실 된 inode 일 수 있습니다. ls -liinode 번호 목록을 얻기 위해 실행 한 다음 참조 된 inode를 덤프 할 수 있습니다. 예를 들어, ls -li다음과 같은 경우 :

rarkenin@ubuntu-alt-64-vbox-1:~$ ls -li
total 58672
4980758 -rwxr-xr-x 2 rarkenin rarkenin     4096 Sep 23 18:45 panorama.jpg
---SNIP---

목록에 첫 번째 열로 표시된대로 inode 번호는 4980758입니다.

그런 다음 inode를 덤프 할 수 있습니다. 무엇이든 하기 전에 전체 게시물을 읽으십시오 .

  1. debugfs루트로 시작하십시오 .

    rarkenin@ubuntu-alt-64-vbox-1:~$ sudo debugfs
    [sudo] password for rarkenin: 
    debugfs 1.42 (29-Nov-2011)
    debugfs:  
    

    open /dev/sda1파티션에 맞는 올바른 블록 장치를 사용하여 명령 을 내립니다.

  2. 그런 다음, 번호를 이전에 얻은 inode를 덤프하도록 명령을 제공하십시오.

    cat <4980758>
    

    사용 <>inode 번호 주위.

  3. 임의의 텍스트를 읽는 경우 터미널을 닫고 다시여십시오. debugfs다시 실행 하고 open명령을 다시 제공 하십시오.

  4. 이제 파일 삭제를 시도 할 수 있습니다. 파일 시스템이 심각하게 손상 될 수 있습니다.

    debugfs: rm [filename]
    
    debugfs: unlink [filename]
    
    debugfs: kill_file [filename]
    
    debugfs: kill_file <inode>
    

파일에 inode가없는 것으로 판명 된 경우에도이 작업을 수행 할 수 있습니다. 위에 표시된 순서대로 한 번에 하나씩 명령을 시도하십시오. debugfs를 종료하고 파일이 존재하는지 확인하십시오. 그렇지 않으면 다시 시작하지만 다음 지시를 따르십시오.

가능하면 백업하십시오!


NTFS 파일 시스템에서 작동하지 않습니다
Suici Doga

@SuiciDoga debugfs는 ext2, ext3 및 ext4 파일 시스템 유형에만 사용됩니다.
nanofarad

0

.... 우리에게 터미널을 보여을 ll | grep panorama우리가 보여; 질문에 추가하십시오 ...

내 제안은 루트로하는 것 rm -f panorama.jpg 입니다.

rm의 사람에서 나는 이것을 발견했다.

-f, --force
              ignore nonexistent files, never prompt

-f와 --force로 여러 번 시도했지만 도움이되지 않았습니다!
Valeriu

0

먼저 루트로 로그인하십시오 sudo -s

rm -v <file>파일을 제거하는 동안 무슨 일이 일어나고 있는지 확인하기 위해 자세한 출력을 살펴볼 수 있습니다 . 아래 명령에 대한 옵션을 확인하십시오.

이것이 실패하면 다른 사람들이 말한 것처럼 강제 옵션을 사용할 수 있습니다. 재귀 제거를 수행하여 전체 디렉토리를 제거 할 수도 있습니다.rm -rfv **full directory address here**



로부터 UNIX 명령 가이드 :

개요

   rm [OPTION]... FILE...

기술

   rm removes each file. By default, it does not remove directories.

   If a file is unwritable, the standard input is a tty,  and  the  -f  or
   --force  option is not given, rm prompts the user for whether to remove
   the file.  If the response is not affirmative, the file is skipped.

옵션

   Remove (unlink) the FILE(s).

   -f, --force
      ignore nonexistent files, never prompt

   -i, --interactive
      prompt before any removal

   --no-preserve-root do not treat '/' specially (the default)

   --preserve-root
      fail to operate recursively on '/'

   -r, -R, --recursive
      remove directories and their contents recursively

   -v, --verbose
      explain what is being done

   --help display this help and exit

   --version
      output version information and exit

   By default, rm does not remove directories.  Use the --recursive (-r or
   -R)  option to remove each listed directory, too, along with all of its
   contents.

   To remove a file whose name starts with a '-', for example '-foo',  use
   one of these commands:

      rm -- -foo

      rm ./-foo

   Note  that  if  you  use rm to remove a file, it is usually possible to
   recover the contents of that file.  If you want more assurance that the
   contents are truly unrecoverable, consider using shred.

0

스크린 샷을 보면 그룹이 루트로 설정되어 있습니다. chown을 사용 해보고 문제가 해결되는지 확인합니다.

sudo chown -hR [username]:[username] /home/[username]

[사용자 이름]을 사용자 이름으로 바꾸십시오.

몇 가지 오류가 발생합니다.

예


mywebslave, 내가 제안한대로 스크린 샷과 동일한 '권한 거부'를 보여주었습니다. 여전히 해당 파일을 삭제할 수 없습니다.
Valeriu

0

파일 이름에 인쇄하지 않는 문자는 공백과 같은 문제를 일으킬 수 있습니다. rm의 대화식 옵션을 시도하고 삭제하려는 파일에 'Y'라고 말하십시오. "
rm -i"* pan * "* s를 사용하여 (프린트되지 않은) 문자와도 일치합니다.
inode는 ls -i를 사용하여 inode를 확인하십시오 파일 시스템을 fsck하여 이러한 종류의 문제를 해결하십시오.


재밌 네요! 결과는 다음과 같습니다. pastebin.com/kjCyX0yB
Valeriu November


0

ubfan1이 말했듯이 파일 이름에 인쇄하지 않는 문자가 있으면 이러한 문제가 발생할 수 있습니다.

  1. 접촉
  2. rm

'touch'가 손상된 파일을 무시한 이후 나를 위해 일했습니다.



0

Linux Mint 18.3 존재하지 않는 파일은 "filename.pdf.crdownload¨"였습니다.이 파일은 데스크탑에서 Windows 말하기의 zip 파일과 같은 패키지로 나타납니다. 이를 위해 나는 속성, Open with를 마우스 오른쪽 버튼으로 클릭하여 앱이 0으로 표시되었으므로 Open With ¨Archive Manager¨로 변경했습니다. 즉시 파일이 데스크탑에서 사라졌습니다. KB

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.