回答
One should never parse the output of ls。如果您正在使用bash,请尝试此操作
if [ -d "$DIRECTORY" ]; then
# will enter here if $DIRECTORY exists.
fi
test -d 'name' && echo "It is there"
的test -d 'name'
可用于if语句之类为好。
试试这个吗?
ls -l | grep ^d name
这将在名为'name'的文件的一行的开头处搜索'd'。 – Kevin 2013-05-03 14:44:07
我当然不是专家。但它对我有用吗?如果你有第二个,我不介意吸取教训。这个:ls -l | grep^d Web 返回这个:grep:Web:当我尝试使用时,它是我的一个目录 – eatonphil 2013-05-03 14:46:04
这种方法没有什么*错误*,除非你不应该从ls解析输出[see link](http:/ /mywiki.wooledge.org/ParsingLs)'ls -l'显示使用长列表的结果,其中第一个字段是文件模式位。如果它作为文件夹,第一个字符将是一个'd',与正则表达式'^ d'相匹配。所以,这种方法有效,但它有缺陷(再次请参阅链接)。 – 2013-05-03 15:01:39
这就是-d
测试的目的。简单地说:
if [ -d "name" ]; then
echo "yay!"
else
echo "nay!"
fi
- 1. 查找特定的目录,并把它作为工作目录
- 2. 在一个目录中找到一个特定的文件并删除目录
- 3. Unix:创建一个与工作目录同名的目录
- 4. 如何查找某个目录中存在的特定目录
- 5. 删除unix中的特定子目录
- 6. UNIX找到子目录
- 7. gulp-clean-css不能在一个特定的目录中工作?
- 8. PHP UnRar.exe到一个特定的目录
- 9. 输入到UNIX外壳采用特殊的工作目录
- 10. 通过目录路径搜索找到一个特定的目录
- 11. ipython,找到特定的目录
- 12. os.path.exists不工作的特定目录
- 13. 存在子目录的unix ls目录
- 14. Unix找到丢失文件的目录
- 15. 在一个特定的目录
- 16. Class.forName(Class)在一个特定的目录?
- 17. Unix:遍历一个目录
- 18. 在目录中的UNIX
- 19. 如何找到我的工作目录?
- 20. 在目录中查找特定目录并更改文件名
- 21. 在多个目录中选择特定的目录
- 22. 的Makefile:在给定的目录中的特定目录
- 23. unix在目录和子目录中查找和替换文本
- 24. 查找目录一个无文件在Unix/Linux操作系统
- 25. 查找目录的大小在UNIX
- 26. 从一个特定的目录中调用一个目标
- 27. 将子目录中的特定文件移动到一个目录 - python
- 28. 如何将当前工作目录更改为特定目录并在特定目录下执行程序?
- 29. 清单在UNIX目录/子目录
- 30. 如何从Java的工作目录返回一个目录?
再次出现同样的错误。 '〜> if [[-d“a”]];然后cd a;否则回显“ER”; fi' '-bash:[[-d:command not found' 'ER' – 2013-05-03 15:21:21
[]中的空格很重要。即'[-d“a”]'会起作用,但'[-d“a”]'不会。另外,'test -d“a”'将在bash和csh中工作 – 2013-05-03 16:04:31