红联Linux门户
Linux帮助

新手 求教 有很多文件 如何判断这些文件是否是文件夹如果是输出结果

发布时间:2011-09-01 10:56:57来源:红联作者:zibixuan
新手 求教 有一个文件夹里有很多文件 如何判断这些文件是否是文件夹如果是输出结果(这些文件有很多是文件夹) 最后把输出的结果放到一个文件里
我开始想的是 ls -l /home/`ls /home` > 1.txt 我发现这样不行

有人告诉我在脚本中用test命令测试,结合其他命令输出
在终端用file也能
用cd后按tab补全,是目录就自动列出
ls命令后跟*/,不是目录就不列出啦

test -d 这个命令我知道 但具体怎么用我不太清楚求达人指教 因为有很多文件要测试 我不知道 test -d 后边跟什么? 测完的结果怎么用?
cd ls 这两个命令用在哪?什么时候用呀?
文章评论

共有 6 条评论

  1. gwssgc 于 2011-09-02 09:36:57发表:

    [i=s] 本帖最后由 gwssgc 于 2011-9-2 10:47 编辑 [/i]

    学习了!
    不过用for循环的话条件应该怎么写呢?
    for的基本循环是这样儿的

    for ((i=0; i
    done
    但是具体到这个例子循环到文件夹里的每个文件这个条件怎么写呢?

  2. 相思爱文 于 2011-09-01 22:22:32发表:

    如果用脚本,就用for循环,用test判断。

  3. 相思爱文 于 2011-09-01 22:17:32发表:

    目录名中后面有个/,不喜欢就结合cut命令过滤掉。
    ls -d */ |cut -d '/' -f 1 >filename

  4. 相思爱文 于 2011-09-01 22:13:15发表:

    [i=s] 本帖最后由 相思爱文 于 2011-9-1 22:15 编辑 [/i]

    一条命令就可以
    进入目录中运行
    ls -d */ >filename

    ls -d */ .[!.]*>filename

    filename可以起任意名。这条命令的意思是列出当前目录中的所有目录(第二个包含陷藏目录),保存在filename中。

  5. wayne916 于 2011-09-01 11:24:38发表:

    对了,还得补充下,
    test -d filename不会显示任何信息,只能从回传码$?判断,0为文件夹,非0不是

  6. wayne916 于 2011-09-01 11:20:17发表:

    test好像不行吧,test一次只能判断一个文件,test -d filename
    如果判断一个目录下的所有文件的话,只能一个一个来执行test
    想要一次实现的话,还是编个脚本吧。其他的实现方法我也不清楚,坐等高人指点。