命令脚本将文件识别为目录

时间:2016-04-20 12:08:18

标签: linux bash shell posix

以下代码应该计算目录包含的元素数量,但是如果它正确地执行,它还将当前目录中的每个元素都识别为目录

我不知道如何不显示非目录的元素。我怎么能这样做?

  

代码在这里:http://pastebin.com/9R4eB4Xn

     

termlog.txt:   https://justpaste.it/tgsl

正如您所看到的,某些文件(如.jpg或.zip)被识别为目录。

2 个答案:

答案 0 :(得分:1)

echo "Element is a directory"位于ifthen之间。在then之后移动它:

for i in *
do
  if [ ! -f "$i" ] && [ -d "$i" ]
    then
      echo "Element is a directory"
      FILES=`ls -l "$i" | wc -l`  # List the content of "$i" directory
                                  # and count the number of lines
      FILES2=`expr $FILES - 1`    # Substract one because one line is
                                  # occupied with the number of blocks
      echo "$i: $FILES2"          # Shows the name of the directory and
                                  # the number of inputs that it has
  fi
done

答案 1 :(得分:0)

for i in `find DIRECTORY -maxdepth 2 -type d`; do echo "$i: `ls -1 $i | wc -l`"; done

如果只对当前目录感兴趣,请将DIRECTORY替换为。