?
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文字を含むすべてのファイルを抽出し、2番目のループでは非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
正しいファイル名を持つようになりました。回答を投稿した皆さんに感謝します!