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
:命令中只允许一个“{}”实例。