디렉터리 이름을 이동한 후 파일을 복구하시겠습니까?

디렉터리 이름을 이동한 후 파일을 복구하시겠습니까?

일부 테스트 중에 bast 스크립트를 실행했습니다.

for file in *; do
    mv -v "$file" "$file#_*"
done

또는 이와 유사한 조항. 계획은 디렉터리 이름에서 접두사를 제거하는 것이었지만 실수로 내가 만든 테스트 디렉터리가 아닌 홈 디렉터리에서 실행했습니다...

제가 이해한 바에 따르면 디렉터리 내의 모든 파일은 "안전"해야 하지만(삭제되지 않은 상태로) 지금은 디렉터리 구조를 통해 해당 파일에 액세스할 수 없습니다.

이러한 파일을 복구할 수 있는 방법이 있습니까?

미리 감사드립니다.

고쳐 쓰다내 기억이 잘못된 것 같습니다. 루프의 명령은 for실제로 이었습니다 echo mv .... 어쨌든 ~의 모든 디렉토리와 파일은 내 비디오 디렉토리로 이동되었지만 손상되지 않은 것으로 보입니다.

답변1

거기에서 무엇을 했는지 완전히 확신할 수 없지만, 질문에 있는 명령이 실행한 명령이라면 이를 되돌릴 수 있어야 합니다.

for f in *
do echo mv -v "$f" "${f%"#_*"}"
done

echo작동한다는 확신이 들 때까지 이 명령에서 아무 것도 제거하지 마십시오. 하지만 작동한다고 생각하는 이유를 설명하기 위해 제가 한 작업은 다음과 같습니다.

for f in $(seq 100)
do echo $f > file$f
done

file1예를 들어 이렇게 하면 100개의 파일이 남게 되며 file100각 파일에는 해당 번호가 포함됩니다.

$ cat file100
100

그렇죠. 그런 다음 나는 당신이 한 일을 했습니다.

for f in *
do mv -v "$f" "$f#_*"
done

file1#_*- 같은 파일이 많이 있습니다 file100#_*. 그런 다음 첫 번째 코드 블록에 붙여넣은 작업을 수행했지만 에코가 없었습니다.

$ cat file100
100

관련 정보