Hum*_*gar 1 unix directory shell
什么命令使用Shell脚本检查目录是否在另一个路径中?
我对此进行了搜索,但我能找到的只是检查“当前”目录中是否存在目录。
if [ -d "$DIRECTORY" ]; then
# found "any" directory
fi
Run Code Online (Sandbox Code Playgroud)
当我想知道另一个目录中是否存在“ any”目录时,这不能满足要求。
if [ -d "./PATH/$DIRECTORY" ]; then
# found "any" directory in subdirectory
fi
Run Code Online (Sandbox Code Playgroud)
显然这没有用。这仍然从当前工作目录中进行检查,而不是从我给出的路径中进行检查。
有什么建议么?
我想在if条件下使用它,因此回答保留该表格将很有帮助。
编辑
在shell脚本中,我添加了以下内容:
#!/bin/bash
ls -ld ./smth/world/
echo DIRECTORY=$DIRECTORY
if [ -d "./smth/$DIRECTORY/" ]; then
echo hi
else
echo nope
fi
Run Code Online (Sandbox Code Playgroud)
在当前目录中,我有一个名为“ smth”的目录。在“ smth”中,我创建了一个虚拟目录“ world”
编辑#2
在路径前面添加点后,得到以下信息:
drwxrwxr-x 2 (myname) (myname) 4096 Sep 5 14:39 ./smth/world/
DIRECTORY=
found
Run Code Online (Sandbox Code Playgroud)
但是,在删除smth目录中的world目录之后,仍然会找到“ found”。
那是另一种方式。./如果是相对于当前目录的目录,/如果是完全指定的目录,即:
如果您提供目录的完整路径,则需要删除点:
if [ -d "/full/path/to/smth/$DIRECTORY" ]; then
# found
fi
Run Code Online (Sandbox Code Playgroud)
如果PATH目录相对于当前目录,则必须保留该点:
if [ -d "./smth/$DIRECTORY" ]; then
# found
fi
Run Code Online (Sandbox Code Playgroud)
如果DIRECTORY变量没有设置,上述命令将检查是否有一个名为目录PATH中smth一个,如果DIRECTORY变量设置,如果没有与下该值的子目录中的测试才会成功smth。
echo $DIRECTORY会告诉您是否DIRECTORY设置了变量。
| 归档时间: |
|
| 查看次数: |
3104 次 |
| 最近记录: |