我使用cygwin -ls (find . -ls
)选项拥有一个具有完整路径的文件列表。
由于在cygwin下将UTF-16 (本例中的windows XP )转换为en_UTF-8,特殊的特征类重音被转换为两个八进制转义值(ex à
在\303\240
中被转换)。如果我使用直接ls -lias
命令,则字符串不会被翻译,可以在nay其他命令(sed、mv、cp、ln、.)中使用简单的引号。
问题:
是否有一种方法可以像ls那样直接让find返回文件名?
实际上,我使用sed来使用一个临时文件和一个printf
来实现八进制翻译的结果,但是它很慢,有点吓人,而且不防弹,特别是基于这个字符串的mv和rm。
我还使用了一个find . -exec ls -lias {} \;
工作注释,即由于每个文件的叉/shell/ls而导致时间爆炸(查找-ls 15分钟,-exec 15小时)。
发布于 2014-11-19 10:35:52
我不知道用find
是否可以实现您想做的事情,但是如果您使用find | xargs
而不是find -exec
,您可以大大加快当前对find
的使用速度。
https://serverfault.com/questions/645415
复制相似问题