Linux find将所有文件重新编码到子目录

Linux find将所有文件重新编码到子目录,linux,encoding,find,iconv,Linux,Encoding,Find,Iconv,我试图重新编码目录中的所有文件,并将结果放入子目录中。 我正在使用 find . -type f -name '*.txt' -execdir iconv -f utf-16 -t utf-8 {} > reencoded/{} \; 但是文件名并没有替换第二次出现的“{}”,而是导致重新编码/{}。将命令包装在对sh-c的调用中,该调用可以引用{}作为$0: find . -type f -name '*.txt' -execdir sh -c 'iconv -f utf-16 -t

我试图重新编码目录中的所有文件,并将结果放入子目录中。 我正在使用

find . -type f -name '*.txt' -execdir iconv -f utf-16 -t utf-8 {} >  reencoded/{} \;

但是文件名并没有替换第二次出现的“{}”,而是导致重新编码/{}。

将命令包装在对
sh-c
的调用中,该调用可以引用
{}
作为
$0

find . -type f -name '*.txt' -execdir sh -c 'iconv -f utf-16 -t utf-8 "$0" >  reencoded/"$0"' {} \;

man find
命令中只允许一个“{}”实例。