【发布时间】:2010-11-21 13:52:40
【问题描述】:
我是从这个开始的:
command *
但目录为空时不起作用; * 通配符变成文字“*”字符。所以我切换到这个:
for i in *; do
...
done
这可行,但同样,如果目录为空,则不行。我求助于使用 ls:
for i in `ls -A`
当然,带有空格的文件名会被拆分。我尝试添加 -Q 开关:
for i in `ls -AQ`
这会导致名称仍然被拆分,仅在名称的开头和结尾使用引号字符。我是否在这里遗漏了一些明显的东西,或者这比它应该的更难?
【问题讨论】:
-
带有空格的愚蠢 Windows 文件名!我将为此受到重创(投反对票),但是......我对同事关于脚本的建议:一旦你的脚本有“if”或“while”,就该放下“shell”,然后选择up "perl" :-( 我敢肯定有一些自虐的方式可以使这项工作,但是哎呀。顺便说一下,Bombe 的 find -exec 解决方案需要限制深度,所以子目录也不会被拾取。