当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 16 篇帖子 ]  前往页数 1, 2  下一页
作者 内容
1 楼 
 文章标题 : 求助 :编写一个bash脚本,它以一个目录作为参数,显示出目录中大小是0的所有文件名
帖子发表于 : 2012-04-12 12:35 

注册: 2012-03-02 12:59
帖子: 18
送出感谢: 1
接收感谢: 0 次
求各位大大们指教,我自己写的,运行结果不正确
#! /bin/bash
if [ ! -d "$1" ]; then
echo "missing operand"
exit 1
fi
if [ -d "$1" ]; then
for filename in $( ls -A "$1")
do
if [ -f "$filename" -a -s "$filename" ]; then
echo "$filename"
fi
done
exit 0
fi


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 求助 :编写一个bash脚本,它以一个目录作为参数,显示出目录中大小是0的所有文件名
帖子发表于 : 2012-04-12 12:47 
头像

注册: 2007-03-24 23:45
帖子: 2357
送出感谢: 0 次
接收感谢: 9
代码:
find . -size 0c


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 求助 :编写一个bash脚本,它以一个目录作为参数,显示出目录中大小是0的所有文件名
帖子发表于 : 2012-04-12 12:48 
头像

注册: 2007-03-24 23:45
帖子: 2357
送出感谢: 0 次
接收感谢: 9
对了,你把上面代码的 . 改成你的目录参数


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 求助 :编写一个bash脚本,它以一个目录作为参数,显示出目录中大小是0的所有文件名
帖子发表于 : 2012-04-12 12:49 

注册: 2008-05-24 8:30
帖子: 1453
送出感谢: 2
接收感谢: 30
你那是显示大小不为零的呀。应该在 -s 前加个 \! 吧。

另外,后一个 if 是多余的,因为第一个 if 判断不为目录就退出了。


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 求助 :编写一个bash脚本,它以一个目录作为参数,显示出目录中大小是0的所有文件名
帖子发表于 : 2012-04-12 12:51 

注册: 2012-03-02 12:59
帖子: 18
送出感谢: 1
接收感谢: 0 次
不是很明白 可不可以把完整的代码贴出来,灰常感谢


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 求助 :编写一个bash脚本,它以一个目录作为参数,显示出目录中大小是0的所有文件名
帖子发表于 : 2012-04-12 13:10 

注册: 2012-03-02 12:59
帖子: 18
送出感谢: 1
接收感谢: 0 次
灰常感谢 :em11


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 求助 :编写一个bash脚本,它以一个目录作为参数,显示出目录中大小是0的所有文件名
帖子发表于 : 2012-04-12 14:07 

注册: 2007-12-05 10:57
帖子: 1003
地址: 金山
系统: ubuntu14.04
送出感谢: 13
接收感谢: 62
aerofox
类似送于这样的脚本 ,如何解决文件名含空格?


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 求助 :编写一个bash脚本,它以一个目录作为参数,显示出目录中大小是0的所有文件名
帖子发表于 : 2012-04-12 17:14 

注册: 2008-05-24 8:30
帖子: 1453
送出感谢: 2
接收感谢: 30
cao627 写道:
aerofox
类似送于这样的脚本 ,如何解决文件名含空格?

跟楼主贴的代码中一样,加双引号。


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 求助 :编写一个bash脚本,它以一个目录作为参数,显示出目录中大小是0的所有文件名
帖子发表于 : 2012-04-12 17:17 

注册: 2008-05-24 8:30
帖子: 1453
送出感谢: 2
接收感谢: 30
顽劣书生 写道:
不是很明白 可不可以把完整的代码贴出来,灰常感谢

代码:
#! /bin/bash
if [ ! -d "$1" ]; then
    echo "missing operand"
    exit 1
fi
for filename in $( ls -A "$1")
do
    if [ -f "$filename" -a \! -s "$filename" ]; then
   echo "$filename"
    fi
done
exit 0


页首
 用户资料  
 
10 楼 
 文章标题 : Re: 求助 :编写一个bash脚本,它以一个目录作为参数,显示出目录中大小是0的所有文件名
帖子发表于 : 2012-04-12 17:53 

注册: 2007-12-05 10:57
帖子: 1003
地址: 金山
系统: ubuntu14.04
送出感谢: 13
接收感谢: 62
aerofox 写道:
cao627 写道:
aerofox
类似送于这样的脚本 ,如何解决文件名含空格?

跟楼主贴的代码中一样,加双引号。

试过,不行
目录下,两个空文件,一个文件名含空格
执行楼上的脚本,只能显示不含空格的空文件

还有这里 !前面的 \ 加和不加没区别吧?


页首
 用户资料  
 
11 楼 
 文章标题 : Re: 求助 :编写一个bash脚本,它以一个目录作为参数,显示出目录中大小是0的所有文件名
帖子发表于 : 2012-04-12 18:08 

注册: 2008-05-24 8:30
帖子: 1453
送出感谢: 2
接收感谢: 30
cao627 写道:
aerofox 写道:
cao627 写道:
aerofox
类似送于这样的脚本 ,如何解决文件名含空格?

跟楼主贴的代码中一样,加双引号。

试过,不行

刚才我考虑不周,你可能指的是他那个目录中有带空格的文件名的情况,这种情况下,不要用 ls 列出文件名,而是直接用通配符
代码:
* .*
这会多一个项,表示父目录的 ..。如果不想要这点多余的东西,可以用类似下面的代码:
代码:
shopt -s nullglob
for f in "$1"/{*,.[^.]*,..?*}; do
    process "$f"
done


页首
 用户资料  
 
12 楼 
 文章标题 : Re: 求助 :编写一个bash脚本,它以一个目录作为参数,显示出目录中大小是0的所有文件名
帖子发表于 : 2012-04-12 18:24 

注册: 2007-12-05 10:57
帖子: 1003
地址: 金山
系统: ubuntu14.04
送出感谢: 13
接收感谢: 62
而且 用 ls -Q好像也不行


页首
 用户资料  
 
13 楼 
 文章标题 : Re: 求助 :编写一个bash脚本,它以一个目录作为参数,显示出目录中大小是0的所有文件名
帖子发表于 : 2012-04-12 23:13 

注册: 2012-03-02 12:59
帖子: 18
送出感谢: 1
接收感谢: 0 次
各位大大。晚上重试了。结果不能显示大小为0的所有文件名
#! /bin/bash
if [ ! -d "$1" ]; then
echo "missing operand"
exit 1
fi
for filename in $( ls -A "$1")
do
if [ ! -s "$filename" ]; then
echo "$filename"
fi
done
exit 0
会显示 所有文件的文件名
9楼的代码,运行不显示任何文件名
何解啊?


页首
 用户资料  
 
14 楼 
 文章标题 : Re: 求助 :编写一个bash脚本,它以一个目录作为参数,显示出目录中大小是0的所有文件名
帖子发表于 : 2012-04-13 5:38 

注册: 2008-05-24 8:30
帖子: 1453
送出感谢: 2
接收感谢: 30
顽劣书生 写道:
9楼的代码,运行不显示任何文件名
何解啊?

我试了,没问题呀。
代码:
$ ls -n
总用量 8
-rw-r--r-- 1 1000 1000  24  4月 13 05:36 abc
-rwxr-xr-x 1 1000 1000 203  4月 13 05:35 lsempty
-rw-r--r-- 1 1000 1000   0  4月 13 05:35 xxx
-rw-r--r-- 1 1000 1000   0  4月 13 05:35 yyy
-rw-r--r-- 1 1000 1000   0  4月 13 05:35 zzz
$ cat lsempty
#! /bin/bash
if [ ! -d "$1" ]; then
    echo "missing operand"
    exit 1
fi
for filename in $( ls -A "$1")
do
    if [ -f "$filename" -a \! -s "$filename" ]; then
   echo "$filename"
    fi
done
exit 0
$ ./lsempty .
xxx
yyy
zzz
$


页首
 用户资料  
 
15 楼 
 文章标题 : Re: 求助 :编写一个bash脚本,它以一个目录作为参数,显示出目录中大小是0的所有文件名
帖子发表于 : 2012-04-13 9:01 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 274
man find


_________________
● 鸣学


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 16 篇帖子 ]  前往页数 1, 2  下一页

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译