📜  如果不存在,则 bash cd 或 make dir - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:38:58.016000             🧑  作者: Mango

如果不存在,则 bash cd 或 make dir - Shell-Bash

在Shell里,我们经常需要创建新目录或改变当前目录。但是,有时候你尚未创建指定目录,那么在Shell中如何处理呢?

答案是:使用 if [ ! -d path/to/dir ]; then 判断是否存在目录,如果不存在则执行 mkdir path/to/dir 创建目录,或者执行 cd path/to/dir 进入目录。

在此基础上,为了更好的组织和管理Shell的命令,我们可以使用make命令来简化这个过程。

如何在Shell中检查和创建目录

在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是一种管理依赖关系的工具,通过定义规则和操作,可以自动执行命令。在此基础上,我们可以使用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/dircd path/to/dir命令,视情况而定。但是,如果你想简化该过程,可以使用make来定义规则和操作,自动执行这些命令。