?
Debian 9 시스템에는 이름에 특정 문자가 포함된 파일이 많이 있는 하위 폴더가 있는 폴더가 있습니다 . 이름 을 바꾼 다음 -> ?
로 변경하고 싶습니다 _
.A?oranza.txt
A_oranza.txt
나는 이 사이트에 있는 많은 명령을 시도했지만 성공하지 못했습니다.
답변1
귀하의 질문/답변/의견을 다시 읽어보신 후, 실제로 시도해 보시기 바랍니다 detox
.
?
왜냐하면 뒤에서 무슨 일이 일어나고 있는지 (콘솔 표현만) 파악하는 것은 꽤 지루할 수 있기 때문 입니다.
detox
파일 이름을 쉽게 정리합니다.
답변2
다음 루프를 사용하여 ?
모든 것을 바꿀 수 있습니다 _
.
for i in *
do
echo "$i" | grep -q '?' && mv "$i" "${i//\?/_}"
done
드디어 알아내고 테스트한 것 같아요. 제어 문자와 비ASCII 문자가 포함된 모든 파일을 추출했고 두 번째 루프에서는 비ASCII 문자를 _
.
files=$(for i in *
do
echo "$i" | LANG="" sed -n '/[\x00-\x20]/p
/[\x80-\xFF]/p'
done)
for i in $files
do
mv "$i" "$(echo "$i" | LANG="" sed 's/[\x00-\x20]/_/g
s/[\x80-\xFF]/_/g')"
done
답변3
rsync를 통해 Windows 컴퓨터 백업을 재설정하는 올바른 방법을 찾다가 문제에 대한 새로운 해결책을 찾았습니다. @Kusalananda와 @HaukeLaging이 말한 곳처럼요? 실제로는 ?가 아니고 인쇄되지 않는 특수문자입니다. rsync
매개변수를 사용하여 폴더의 복사본을 만들었고 결과 --iconv=iso-8859-1,utf8
폴더의 이름에 올바른 기호나 특수 문자(예: ñ 또는 á)가 포함되어 있습니다.
detox
또한 잘 작동했지만 rsync --iconv=iso-8859-1,utf8
이제 올바른 파일 이름을 갖게 되었습니다. 답변을 게시한 모든 분들께 감사드립니다!