脚本编写:[! -d dir ] 含义

脚本编写:[! -d dir ] 含义
if [ ! -d /home/dir ]; then

   mkdir /home/dir

fi

我和我的一个朋友有一天在课堂上遇到了这个问题,我们对此都有不同的答案,但我有点想向他证明我可能是对的。

他说它“仅当目录 /home/dir 不存在时才创建它”

我说不,它“删除目录 /home/dir 然后再次创建它”

谁是对的?...或者我们都错了?

答案1

你的朋友几乎是对的,脚本/home/dir仅在它还不是目录时才创建。 (如果是其他东西,mkdir将运行但会失败。)

[引入一个测试,这里是! -d /home/dir-d /home/dir检查是否/home/dir存在并且是一个目录,然后!否定它。所有这些都包含在if/中then意味着如果/home/dir还不是目录,mkdir /home/dir则运行。

具体来说,用mkdir一种更简洁的方式来编写所有内容

mkdir -p /home/dir

答案2

你的朋友是对的。就像“如果不是就是一个目录”

但告诉他你可以放弃整个条件并只写mkdir -p /home/dir

相关内容