我给了命令
ls -lrt
,列出的文件和目录是
drwxr-xr-x 4 root root 4096 Feb 2 2014 abc
drwxr-xr-x 4 root root 4096 Feb 2 2014 cde
drwxr-xr-x 4 root root 4096 Feb 2 20014 efg
-rwxr-xr-x 4 root root 4096 Feb 2 20014 aaa.txt
现在我想通过使用循环来查找列出的输出文件是否是目录。
提前致谢。
答案 0 :(得分:1)
for l in `ls -l|awk '{print $9}'`
do
p=`file $l`
echo $p
done
其他选项是检查权限中的第一个选项。 " d"目录。 " - "文件
编辑:
for l in `ls -l|grep -v total |awk '{print $1}'|cut -b1`
do
if [ $l == "-" ]
then
echo "File"
else
if [ $l == "d" ]
then
echo "Directory"
fi
fi
done
答案 1 :(得分:0)
这听起来像是一个X / Y问题,你要求X但实际上想要Y.
您是否想要获取所有目录的列表?使用find
命令。
find . -type d
答案 2 :(得分:0)
ls |读取f;做测试-d" $ f" &安培;&安培; echo $ f是一个目录|| echo $ f不是目录;完成
列出当前目录中的所有文件,并检查每个文件是否都是目录。要测试子目录中的目录,请替换最初的" ls"用"找到"。