배경:
관심이 없으시면 이 섹션을 건너뛰셔도 됩니다.
저는 보통 sudo dd if=/dev/sdc1 of=~/Document/Cell\ Phone\ Files/MicroSD_Backup/$(date +%y-%m-%d).img
카드리더기를 사용해 MicroSD 카드를 컴퓨터에 연결한 뒤 명령을 통해 휴대폰에 MicroSD 카드를 백업합니다.
내 MicroSD 카드에는 파티션이 하나만 있고 파일 시스템은 입니다 fat32
. GBK
따라서 중국어 파일 이름은 GBK 인코딩을 사용하고 영어 파일 이름은 ASCII 인코딩을 사용합니다.
MicroSD 카드의 최신 이미지를 만든 후 포맷하고 최신 이미지에 있는 쓸모없는 파일을 삭제하고 싶었습니다.
설명하다:
img 파일에는 gbk 파일 이름과 ascii 파일 이름이 포함된 파일이 포함되어 있으며 내 컴퓨터의 기본 인코딩은 UTF-8입니다. 이러한 GBK 파일 이름을 UTF-8로 변환하고 싶은데, convmv --notest -f gbk -t utf-8 *
이미지 파일 마운트 디렉터리에서 명령을 실행할 때 ASCII 파일 이름을 가진 파일이 깨질까 걱정됩니다.
질문:
gbk라는 파일을 찾아 해당 경로를 명령에 파이프할 수 있습니까 convmv
? 따라서 ASCII 파일 이름을 가진 파일은 보존될 수 있습니다.
답변1
제안해 주신 @SiyuanRen에게 감사드립니다.
convmv
ASCII를 변경하지 않고 잘못된 문자를 방지하는 잘못된 문자를 처리할 수 있습니다.
이 경우에는 명령이 제대로 작동합니다 convmv -f gbk -t utf8 *
.
그런데 또 다른 해결책은 -o loop,utf8
이미지 파일을 마운트할 때 사용하거나 udisksctl
파일 이름 인코딩을 자동으로 처리할 수 있는 것을 사용하는 것입니다.
PS의 전체적인 사용방법은 udisksctl
다음과 같습니다.
# losetup --fine --show /path-to-img-file
$ udisksctl -b /the-loop-file-showed-after-former-command
그런 다음 계정 비밀번호를 입력하면 설치된 위치가 표시됩니다/