以下代码应该计算目录包含的元素数量,但是如果它正确地执行,它还将当前目录中的每个元素都识别为目录。
我不知道如何不显示非目录的元素。我怎么能这样做?
代码在这里:http://pastebin.com/9R4eB4Xn
termlog.txt: https://justpaste.it/tgsl
正如您所看到的,某些文件(如.jpg或.zip)被识别为目录。
答案 0 :(得分:1)
echo "Element is a directory"
位于if
和then
之间。在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替换为。