2017-12-12 11 views
0

실수로 mv (project folder) (" ")을 수행했는데 이제 폴더를 찾을 수 없습니다. 폴더는 플라스크 프로젝트입니다. ps -aux | grep flask을 수행했는데 플라스크 프로세스가 계속 실행되고 작동하지만 프로젝트를 찾을 수 없습니다. 나는 약 5 일 전쯤에 내 역사를보고 삭제했다고 생각합니다. 내가 그것을 복구 할 수있는 방법이 있습니까? 또한 사방 ....을 찾고 노력하고"mv (프로젝트 디렉토리) (공백)"을 사용했습니다. 이제 내 디렉토리가 사라졌습니다.

편집 찾을 수 없습니다 : 그것은 당신의 프로세스가 폴더에서 실행되는 가정 ps ax | grep ...으로 PID를 찾기 위해 노력하고 lsof -p $PID | grep cwd을 실행

bash-4.1# lsof -p 34780 | grep cwd flask 34780 root cwd DIR 8,6 0 9961663 /home/path... (deleted)

+0

'cd ""'? 'mv ""myProjectFolder'? – ext

+0

@ext 사실 그것은 공백없이 "mv (프로젝트 폴더)"처럼 보입니다. 어떤 아이디어? – user22261

답변

1

삭제 될 나타납니다 프로세스가 실행중인 디렉토리를 보여줍니다 :

my-process 12345 user cwd DIR 259,1  4096 16792359 /path/to/folder 

이것은 어디에 있는지 보여줄 것입니다.하지만 공백이면 다시 읽기가 어려울 수 있습니다. 이름을 붙이다. 경로 앞의 inode 번호를 확인하십시오 (이 경우 16792359). 상위 폴더로 이동하면 당신은 그것을 이름을 바꿀 수 있습니다 :

find . -inum 16792359 -print0 | xargs -0 -I '{}' mv '{}' myNewProjectFolder 

-print0xargs -0는 공백과 같은 특수 문자 처리에 도움이됩니다.

+0

플라스크 34780 루트 cwd DIR 8,6 0 9961663/home/path ... (삭제됨) – user22261

+0

경로의 끝에 (삭제 된) 경우 어떻게 처리해야합니까? – user22261

+0

그런 다음 디렉토리가 삭제되었으므로 복구 옵션을 살펴보십시오. 'ls -l/proc/proc/34780/fd /'를 실행하고 디렉토리 항목이 열려 있는지 (또는 파일 중 일부인지) 확인하십시오.이 경우'ln/proc/34780/fd/$ fd/path를 사용하십시오/to/new/filename'을 입력하십시오. 아마도 [unix-linux-undelete-recover-deleted-files] (https://unix.stackexchange.com/questions/80270/unix-linux-undelete-recover-deleted-files)와 같은 질문이 도움이 될 것입니다. 'debugfs'는 유용하며, inode의 복구 가능성이 높기 때문에 유용합니다. – ext

0

파일을 공백 문자 이름으로 이동했을 가능성이 있습니다. 따라서 :

  1. 비 인쇄 문자를 이스케이프로 변환해야합니다. 시도하십시오. ls -b
  2. 시도해보십시오. find . -name '* *' 공백이있는 이름은 반복적으로 보입니다.