Как рекурсивно преобразовать все имена файлов в поддереве папок из UTF-8 в ASCII в Linux - PullRequest
1 голос
/ 29 марта 2012

Я новичок в написании сценариев bash, и я хотел бы рекурсивно преобразовать все мои имена файлов в папке из кодировки UTF-8 в ASCII (это очень переносимая кодировка).

Я думаю, что команда iconvбыло бы полезно:

iconv -f utf8 -t ascii ...

Но я не уверен, как именно его использовать.В лучшем случае скрипт bash должен напечатать некоторую подсказку о его прогрессе, например, имя файла, который он только что преобразовал.
Большое спасибо.

1 Ответ

2 голосов
/ 29 марта 2012
find /my/path -type f > utf8list
iconv utf8list > asciilist
i=1
for file in $(cat utf8list); do
  newname=$(head -$i asciilist | tail -1 | tr -d '\n')
  #mv $file $newname 
  echo "mv $file $newname"
  let i++
done
...