如何判断当前目录只有一个文件夹

sh/bash/dash/ksh/zsh等Shell脚本
回复
xeoc
帖子: 1994
注册时间: 2007-05-06 10:12

如何判断当前目录只有一个文件夹

#1

帖子 xeoc » 2008-12-29 22:59

如题...以及类似的判断...
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30

Re: 如何判断当前目录只有一个文件夹

#2

帖子 aerofox » 2008-12-29 23:21

可以

代码: 全选

ls -q | wc -l
结果为 1 就表示只有一个目录项,再判断它是目录就可以了。
Dic4000
帖子: 104
注册时间: 2008-09-10 21:06

Re: 如何判断当前目录只有一个文件夹

#3

帖子 Dic4000 » 2008-12-30 23:59

在终端下运行:

代码: 全选

if test `ls -l|grep ^d| wc -l` -eq 1 ; then echo yes;else echo no;fi
其中数字1就是指一个文件夹,这个数字可以根据你需求变
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30

Re: 如何判断当前目录只有一个文件夹

#4

帖子 aerofox » 2008-12-31 8:48

把楼上的稍微改一点:

代码: 全选

if [ `ls -Aql|grep ^d| wc -l` -eq 1 ]; then echo yes;else echo no;fi
2楼我贴的也漏了ls的-A,这样如果有隐藏文件将错过了。
-q是为了保证在遇到一些比较怪的文件名时不出错。可以试试:

代码: 全选

mkdir "This is a strange 
directory"
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 如何判断当前目录只有一个文件夹

#5

帖子 eexpress » 2008-12-31 9:48

还不如find
● 鸣学
头像
goodluck1982
帖子: 171
注册时间: 2007-07-05 2:48

Re: 如何判断当前目录只有一个文件夹

#6

帖子 goodluck1982 » 2008-12-31 14:47

可以试试 lsdir

代码: 全选

lsdir | grep -v '^\.$' |wc -l
Dic4000
帖子: 104
注册时间: 2008-09-10 21:06

Re: 如何判断当前目录只有一个文件夹

#7

帖子 Dic4000 » 2009-01-04 23:23

goodluck1982 写了:可以试试 lsdir

代码: 全选

lsdir | grep -v '^\.$' |wc -l
Ubuntu中没有lsdir这个命令啊~~~~
Dic4000
帖子: 104
注册时间: 2008-09-10 21:06

Re: 如何判断当前目录只有一个文件夹

#8

帖子 Dic4000 » 2009-01-04 23:25

eexpress 写了:还不如find
我听说用find命令,如果数据量大的时候会要些时间的,而且伤硬盘,是这样吗? :em06
回复