【发布时间】:2012-03-29 17:36:55
【问题描述】:
我尝试使用以下脚本更改文件名:
查找目录/ -type f -exec mv {} $(echo {} | iconv -f UTF8 -t ASCII//TRANSLIT ) \;
为什么它不起作用?我的意思是当我有一个像'ą'这样的字符的文件时,它应该将它转换为'a'。
$ echo ążźćó | iconv -f UTF8 -t ASCII//TRANSLIT
azzco
为什么它在 find -exec 中不起作用?
$ find dir/ -type f -exec mv {} $(echo {} | iconv -f UTF8 -t ASCII//TRANSLIT ) \;
mv: `dir/zią' and `dir/zią' are the same file
我使用 xargs 得到相同的结果:
$ find dir/ -type f | xargs -I{} echo {} | iconv -f UTF8 -t ASCII//TRANSLIT
dir/zia
但是:
$ find dir/ -type f | xargs -I{} mv {} $(echo {} | iconv -f UTF8 -t ASCII//TRANSLIT)
mv: `dir/zią' and `dir/zią' are the same file
【问题讨论】: