必须解析 ls -Al 输出并获取文件或目录名称

必须解析 ls -Al 输出并获取文件或目录名称

我必须解析ls -Al输出并获取文件或目录名

ls -Al输出 :

drwxr-xr-x  12 s162103  studs         12 march 28 2012 personal domain
drwxr-xr-x   2 s162103  studs          3 march 28 22:32 public_html
drwxr-xr-x   7 s162103  studs          8 march 28 13:59 WebApplication1

我应该只使用ls -Al | <something>

例如:

ls -Al | awk '{print $8}'

但这不起作用,因为$8如果目录名称中有空格,则不是名称,它是名称的一部分。也许有一些实用程序可以删除姓氏或删除之前的任何内容?

答案1

您永远不应该尝试解析ls文件名列表。 bash 维基有整篇文章关于为什么你不应该解析ls.文件中含有空格是最大的原因之一。

您想使用glob

printf '%s\n' *

您的问题仅表明您想要打印文件名,但我怀疑您也想对其采取操作。在这种情况下,您需要迭代 glob:

for f in *; do
    somecommand "$f"
done

相关内容