일부 테스트 중에 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