2013-03-15 130 views
0

我有这个代码,它被设置为一个步骤的条件。 代码中'-d'是什么意思?在Unix中'-d'做什么?

if [ -d $FTBASEDIR/$1/$2 ]; then 
    ftcmd="lcd $FTBASEDIR" 
    ftcmd2="cd $FTROOTDIR" 
    ftcmd3="put $1" 
fi 

回答

4

这意味着:下面的参数是一个目录吗?

bash手册页(CONDITIONAL EXPRESSIONS下):

-d file 
    True if file exists and is a directory. 

有一系列这样的主机,让你发现常规文件,字符特殊文件,文件是否可写,等等。

1

[实际上是一个命令名(几乎)相当于test命令。

[都和test在许多弹实现既作为一个内置的命令,以及作为实际可执行文件,通常在/usr/bin[通常是符号链接到test)。 (在过去,他们只是可执行文件。把他们加入外壳让测试执行的速度更快)

对于bash或为test命令的文档说明了-d测试以下参数是否是一个目录。

(我写的“近”以上;不同的是,[需要匹配]参数,而test没有。)

+0

如果文件存在,我需要测试什么? – 2013-03-15 03:04:07

+0

@ user2172204:'man test' – 2013-03-15 05:39:55