新手 求教 有一个文件夹里有很多文件 如何判断这些文件是否是文件夹如果是输出结果(这些文件有很多是文件夹) 最后把输出的结果放到一个文件里
我开始想的是 ls -l /home/`ls /home` > 1.txt 我发现这样不行
有人告诉我在脚本中用test命令测试,结合其他命令输出
在终端用file也能
用cd后按tab补全,是目录就自动列出
ls命令后跟*/,不是目录就不列出啦
test -d 这个命令我知道 但具体怎么用我不太清楚求达人指教 因为有很多文件要测试 我不知道 test -d 后边跟什么? 测完的结果怎么用?
cd ls 这两个命令用在哪?什么时候用呀?
gwssgc 于 2011-09-02 09:36:57发表:
[i=s] 本帖最后由 gwssgc 于 2011-9-2 10:47 编辑 [/i]
学习了!
不过用for循环的话条件应该怎么写呢?
for的基本循环是这样儿的
for ((i=0; i
done
但是具体到这个例子循环到文件夹里的每个文件这个条件怎么写呢?
相思爱文 于 2011-09-01 22:22:32发表:
如果用脚本,就用for循环,用test判断。
相思爱文 于 2011-09-01 22:17:32发表:
目录名中后面有个/,不喜欢就结合cut命令过滤掉。
ls -d */ |cut -d '/' -f 1 >filename
相思爱文 于 2011-09-01 22:13:15发表:
[i=s] 本帖最后由 相思爱文 于 2011-9-1 22:15 编辑 [/i]
一条命令就可以
进入目录中运行
ls -d */ >filename
或
ls -d */ .[!.]*>filename
filename可以起任意名。这条命令的意思是列出当前目录中的所有目录(第二个包含陷藏目录),保存在filename中。
wayne916 于 2011-09-01 11:24:38发表:
对了,还得补充下,
test -d filename不会显示任何信息,只能从回传码$?判断,0为文件夹,非0不是
wayne916 于 2011-09-01 11:20:17发表:
test好像不行吧,test一次只能判断一个文件,test -d filename
如果判断一个目录下的所有文件的话,只能一个一个来执行test
想要一次实现的话,还是编个脚本吧。其他的实现方法我也不清楚,坐等高人指点。