【发布时间】:2016-09-01 15:16:33
【问题描述】:
如何检查路径/目录是否存在 (-d) 并且是根目录的完整路径名?
i.e. ~/mysubdir vs /home/me/mysubdir vs mysubdir.
- 我希望提供的参数如果不是根路径 存在。特定于 unix 的操作系统。
- 或者,给定一个目录,如果它存在,获取它的完整根路径?
【问题讨论】:
-
只是一些可能使搜索更容易的术语:您所说的“根路径”通常称为绝对路径,而“非根路径”称为相对路径。跨度>
-
绝对路径是在波浪号扩展后以斜线开头的路径。您可以通过查找波浪号或斜线来进行快捷操作,并在后面的代码中单独处理无效的波浪号扩展。
-
@tripleee 注意波浪号,并非所有程序都将其解释为 $HOME 的意思。试试
perl -MFile::Find -e 'find(sub { print "$File::Find::name\n"; }, "~");'--- 它什么也没打印,但很明显我在~中有文件。 -
从 OP 想要支持波浪号扩展的问题看来相当清楚。如果在尚不支持的情况下需要这样做,显然他们必须自己实现。