cygwin find -ls 行为类似 ls

cygwin find -ls 行为类似 ls

我使用带有 -ls () 选项的 cygwin findfind . -ls来获取具有完整路径的文件列表。

由于 UTF-16(在本例中为 Windows XP)在 cygwin 下转换为 en_UTF-8,特殊字符(如重音符)被转换为 2 个八进制转义值(例如,à在 中转换)\303\240。如果我使用直接ls -lias命令,则字符串不会被转换,并且可以在其他命令(sed、mv、cp、ln 等)中与简单的引号一起使用。

问题:

有没有办法直接寻找像 ls 一样返回文件名?

实际上,我使用 sed 使用临时文件进行反向翻译并获得printf八进制翻译的结果,但是它很慢,有点可怕并且不是万无一失的,特别是对于基于此字符串的后续 mv 和 rm。

我还使用了一个find . -exec ls -lias {} \;工作 execpt,由于每个文件上的 fork/shell/ls,时间爆炸式增长(使用 find -ls 需要 15 分钟,使用 -exec 需要 15 小时)

答案1

我不知道您是否可以使用 来执行此操作,但如果您使用而不是 ,find则可以大大加快当前的使用速度。findfind | xargsfind -exec

相关内容