我使用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
复制相似问题