创建文件夹已存在时 mkdir -p 是否完全安全

创建文件夹已存在时 mkdir -p 是否完全安全

假设我有一个文件夹:

./folder/

里面有很多文件甚至子目录。

当我执行时:

mkdir -p folder

我不会看到任何错误,甚至警告。

所以只是想确认一下,这个命令的结果是否有任何丢失或改变?

答案1

mkdir -p如果目录已经存在并且目录的内容不会更改,则不会给出错误。

手动输入mkdir

答案2

可移植脚本将依赖于 POSIX,其中表示mkdir-p选项:

每个目录命名现有目录的操作数应被忽略而不会出现错误。

如果没有报告错误,则-p选项已完成其工作:

创建任何缺失的中间路径名组件。

答案3

如果目录已经存在, mkdir 会给你一个错误。

目录-p如果目录已经存在,不会给你一个错误。此外,该目录将保持不变,即内容按原样保留。

答案4

你这么说,

当我执行时,mkdir -p folder我不会看到任何错误,甚至警告。

如果命令失败,您将看到错误。该-p标志仅在目录已存在时抑制错误。

touch x
mkdir -p x
mkdir: cannot create directory ‘x’: File exists

如果您尝试以普通用户身份在/etc.

-p抑制的是当目标目录已经存在时会触发的错误

mkdir y
mkdir -p y

然而在所有情况下你都不会失去任何东西,也不会改变任何东西。在错误情况下,您将不会获得您期望的目录。

相关内容