背景:
興味がない場合は、このセクションをスキップしてください。
私は通常sudo dd if=/dev/sdc1 of=~/Document/Cell\ Phone\ Files/MicroSD_Backup/$(date +%y-%m-%d).img
カードリーダーを使ってMicroSDカードをコンピュータに接続し、コマンドを使って携帯電話にMicroSDカードをバックアップします。
私のMicroSDカードにはパーティションが1つだけあり、ファイルシステムはです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 *
。
もう1つの解決策は、イメージ-o loop,utf8
ファイルをマウントするときに使用するか、udisksctl
ファイル名のエンコードを自動的に処理できるものを使用することです。
PSの全体的な使用方法はudisksctl
次のとおりです。
# losetup --fine --show /path-to-img-file
$ udisksctl -b /the-loop-file-showed-after-former-command
その後、アカウントのパスワードを入力すると、インストールされている場所が表示されます/