如何获取Aix或Unix目录中的非目录文件列表?

时间:2012-06-27 07:16:23

标签: ksh aix

我想获取目录中的非目录文件列表。 find命令正在运行,但maxdepth 1选项不起作用,可能是因为Aix不支持它。

此命令:

find . -maxdepth 1 -type f  

返回:

find: bad option -maxdepth

我使用了这个命令:

ls -l | grep ^- | awk '{print $9}'

但如果文件名包含空格,则不起作用。有什么方法可以解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

关闭你的最后一次尝试,这似乎没问题:

ls -l | grep ^- | awk '{for(i=1;i<9;i++) $i="";print}' | sed 's/^        //'

可能有一种更好的方式(我希望有!)但这会折叠前八个字段,留下八个空格,然后是其余部分(因此文件名中的空格可以正常),然后删除那些领先八个空间。

我更喜欢这种切入追逐的bash版本:

for f in *; do if [ -f "$f" ]; then echo "$f"; fi; done

我相信你可以调整一下ksh(我不熟悉)。

我仍然希望别人知道更直接的事情。

答案 1 :(得分:0)

对于名称中包含多个空格的文件,这似乎对我有用。将其减少到一个管道 我个人希望找到更优雅的东西。

ls -l | awk '/^-/ {for(i=9;i<=NF;i++){printf "%s ", $i}print "";}'