可以安全删除的文件而不影响系统

Ale*_*ski 0 linux command-line files delete

我正在尝试让我的 shell 脚本更安全一些。如果由于某种原因未定义变量,我考虑使用默认值,例如:

rm -r "${OUTPUT_DIR:-/dev/null/this_path_does_not_exists}"
Run Code Online (Sandbox Code Playgroud)

使用不存在的路径是我想出的解决方案。然后我想,如果有一个系统范围的接收器(/dev/null),也许有一个文件或伪文件,可以安全地删除而不影响系统。所以我的问题如下 - 是否有一个文件:

  • 可删除,不会造成任何损失、功能损失或数据丢失
  • 自动“重新生成”(它可能不会被系统首先删除)
  • 以超级用户身份删除不会删除它(我很惊讶可以删除 /dev/null :))

Ste*_*itt 6

与其试图提出一个始终存在但也始终可以删除的文件(或目录),为什么不在使用变量之前显式检查变量呢?

\n
[ -d "$OUTPUT_DIR" ] && rm -r -- "$OUTPUT_DIR"\n
Run Code Online (Sandbox Code Playgroud)\n

如果$OUTPUT_DIR为空或指向不存在或不是目录的内容,则不会尝试删除任何内容。

\n