📅  最后修改于: 2023-12-03 15:38:58.016000             🧑  作者: Mango
在Shell里,我们经常需要创建新目录或改变当前目录。但是,有时候你尚未创建指定目录,那么在Shell中如何处理呢?
答案是:使用 if [ ! -d path/to/dir ]; then
判断是否存在目录,如果不存在则执行 mkdir path/to/dir
创建目录,或者执行 cd path/to/dir
进入目录。
在此基础上,为了更好的组织和管理Shell的命令,我们可以使用make命令来简化这个过程。
在Shell中,使用if [ ! -d path/to/dir ]
命令可以检查该目录是否存在。如果不存在,可以使用mkdir path/to/dir
来创建目录。
if [ ! -d path/to/dir ]; then
mkdir path/to/dir
fi
使用-p
选项来创建多级目录,即使目录的上级目录不存在。
mkdir -p path/to/dir
如果你需要在创建目录后进入该目录,可以使用cd
命令。
cd path/to/dir
请注意,cd
命令只适用于已经存在的目录。
make是一种管理依赖关系的工具,通过定义规则和操作,可以自动执行命令。在此基础上,我们可以使用make来简化上述过程。
Makefile示例
首先,创建一个名为Makefile的文件,并添加以下内容。
# Makefile
path-to-dir:
if [ ! -d path/to/dir ]; then mkdir -p path/to/dir; fi
.PHONY: path-to-dir
这个规则定义了一个名为path-to-dir
的目标,并指定了依赖和操作。
path/to/dir
if [ ! -d path/to/dir ]; then mkdir -p path/to/dir; fi
使用.PHONY: path-to-dir
指定目标path-to-dir
是一个伪目标,而不是实际存在的文件名。
执行目标
执行make命令时,可以指定path-to-dir
作为目标,然后使用cd path/to/dir
命令进入指定目录。
make path-to-dir && cd path/to/dir
使用此命令时,请确保当前工作目录正确。
在Shell中,最好的做法是使用if [ ! -d path/to/dir ]; then
检查目录是否存在,然后执行mkdir path/to/dir
或cd path/to/dir
命令,视情况而定。但是,如果你想简化该过程,可以使用make来定义规则和操作,自动执行这些命令。