如何在一个命令中创建文件和父目录?

如何在一个命令中创建文件和父目录?

touchmkdir、或其他一些命令是否有一个标志/选项>允许我同时创建一个文件和任何不存在的父目录?

例如,假设我位于一个空文件夹中。现在,如果创建文件夹时父目录不存在,我可以创建父目录

mkdir -p nested/folder

我可以在现有目录中创建文件

touch nested/folder/something.txt

但我无法在尚不存在的目录中创建文件

touch nested/folder/deep/more.txt

touch:无法触摸“nested/folder/deep/more.txt”:没有这样的文件或目录

我如何deep在创建的同时创建该文件夹more.txt

答案1

您可以将这两个命令组合在一行上。如果您使用变量,您可以这样做:

file="./nested/folder/deep/more.txt"

然后是这个:

mkdir -p "${file%/*}" && touch "$file"

或者都集中在一行上,如下所示:

mkdir -p "./nested/folder/deep" && touch "./nested/folder/deep/more.txt"

这不是一个单一的命令,但它可能会为您完成这项工作。

相关内容