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


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.