如何在指定目录下找到最大的十个文件(不包括目录)

sinwh0815 2016-04-29 11:07:31
在AIX主机上,想要找出指定目录内的最大的10个文件,不包括目录,不想用find + ls -l ,感觉太慢,希望用du可以搞定
du -am $dirname|awk '{if(-d $2)print $1,$2;}'|sort -rn|head -10

然而并不能,if(-d dir) 似乎没有效果,单独测试了下,结果......
#!/bin/sh

if( -d $* )
then
echo "$* is a Directory"
fi

###./test.sh[3]: -d: not found

不知道是哪里出错了,望有大神指教。
...全文
2424 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
shpjsj 2016-08-09
  • 打赏
  • 举报
回复
判断一下是否为文件: du -am $dirname|awk 'BEGIN { FILE * fp}{fp=fopen($2,"r"); if(fp !=NULL)print $1,$2;}'|sort -rn|head -10
renwotao2009 2016-04-30
  • 打赏
  • 举报
回复
引用 3楼我是你的主体 的回复:
[quote=引用 2 楼 renwotao2009 的回复:] 上面写的有点不正确,if [ cmd ] 这里用中括号注意cmd 两边都有空格
是的,下面的测试脚本写错了 应该是用 [ ] 的,但是我把 awk中的if改为[ ] ,还是报错了,查了下资料,似乎awk中的条件语句是从C语言中借鉴过来的 ,格式就是
{if (expression){
statement; statement; ...
}
}
与shell 的 if 不是一个体系,这是不是就意味着 awk 中 不能使用 [-d dir] 来判定是否是目录了,那还有其他的方法吗?[/quote]嗯,awk中的if是不一样,我看错了
sinwh0815 2016-04-30
  • 打赏
  • 举报
回复
引用 2 楼 renwotao2009 的回复:
上面写的有点不正确,if [ cmd ] 这里用中括号注意cmd 两边都有空格
是的,下面的测试脚本写错了 应该是用 [ ] 的,但是我把 awk中的if改为[ ] ,还是报错了,查了下资料,似乎awk中的条件语句是从C语言中借鉴过来的 ,格式就是
{if (expression){
statement; statement; ...
}
}
与shell 的 if 不是一个体系,这是不是就意味着 awk 中 不能使用 [-d dir] 来判定是否是目录了,那还有其他的方法吗?
renwotao2009 2016-04-29
  • 打赏
  • 举报
回复
上面写的有点不正确,if [ cmd ] 这里用中括号注意cmd 两边都有空格
renwotao2009 2016-04-29
  • 打赏
  • 举报
回复
if [ -d dir]

1,194

社区成员

发帖
与我相关
我的任务
社区描述
该论坛主要探讨IBM AIX平台的安装、部署、应用开发等话题,并为网友们提供自由交流的平台。
社区管理员
  • IBM AIX社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧