파일을 건드릴 수 없습니다. 특정 파일에 해당하는 파일이나 디렉터리가 없습니다.

파일을 건드릴 수 없습니다. 특정 파일에 해당하는 파일이나 디렉터리가 없습니다.

동일한 문제에 대해 다른 질문이 많다는 것을 알고 있지만 동일한 사례를 재현할 수 있는 항목을 찾지 못했습니다.

상황은 간단합니다. 이렇게 할 수 있습니다.

$ touch example1.txt

하지만 나는 이것을 할 수 없습니다:

$ touch example2.txt
touch: cannot touch 'example2.txt': No such file or directory

이 경우 및 는 example1.txt둘 다 소프트웨어에 의해 생성된 파일이며 , 파일이 특정 시점에 생성되었을 수 있음 example2.txt을 알고 있습니다 (파일 이름은 문자와 숫자의 특정 구성을 가지며 특수 공백이나 공백은 없습니다).example2.txt

이 상황을 일으킨 서버에 대해 더 이상 정보를 얻을 수 없지만(클라이언트의 서버였으며 파일을 저장할 다른 디렉터리를 생성하여 이미 다른 방법으로 상황을 해결했습니다), 어떤 일이 일어났는지 찾을 수 없습니다.

루트로도 파일을 생성할 수 없습니다( mkdir example2.txt, , rm -rf example2.txt동일한 오류가 발생하고 ls -laF파일이 표시되지 않음).

디렉토리는 삼바를 통해 Windows 시스템과 공유되며 이것이 그것과 관련이 있을 수 있다고 생각했지만 성공하지 못한 채 유사한 상황을 재현하기 위해 여러 가지 방법을 시도했습니다.

지금은 비슷한 상황을 만들어보려고 하는데 안되서 정말 궁금해서 여쭤봅니다.

기본적으로 제가 찾고 있는 것은 상황을 재현하는 방법, 상황을 해결하는 방법(가능한 경우 소프트웨어에서 상황을 처리하고, 그렇지 않은 경우 서버 관리자에게 로그를 생성하여 빠르게 해결하는 방법)입니다.

비슷한 상황을 재현할 수 있는 방법을 아시는 분 계시면 공유해주시면 감사하겠습니다.

이 디렉터리는 위치가 지정되어 /tmp/software_files있으며 그 안에 파일이나 디렉터리를 만들 수 있습니다. example2.txt파일만 이러한 상황을 만듭니다.

답변1

mkdir test && cd test && rm -r ../test && touch fail; cd
touch: cannot touch 'fail': No such file or directory

또는

touch other/fail
touch: cannot touch 'other/fail': No such file or directory

확인할 수는 있지만 트랩을 사용하는 것이 좋습니다

if [ ! -d "$(pwd)" ] ; then echo fail; fi

관련 정보