web-dev-qa-db-ja.com

1つのコマンドでファイルと親ディレクトリを作成する方法は?

touchmkdir>、またはファイルと存在しない親ディレクトリを同時に作成できるようにするためのフラグ/オプションはありますか?

たとえば、私が空のフォルダにいるとします。フォルダを作成するときに親ディレクトリが存在しない場合は、親ディレクトリを作成できます

mkdir -p nested/folder

既存のディレクトリにファイルを作成できます

touch nested/folder/something.txt

しかし、まだ存在しないディレクトリにファイルを作成することはできません

touch nested/folder/deep/more.txt

touch:「nested/folder/deep/more.txt」には触れられません:そのようなファイルやディレクトリはありません

more.txtを作成すると同時に、そのdeepフォルダをどのように作成しますか?

25
Jeff Puckett

2つのコマンドを1行で組み合わせることができます。変数を使用する場合、これを行うことができます:

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

そしてこれ:

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

または、次のように1行にまとめます。

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

それは単一のコマンドではありませんが、あなたのために仕事をするかもしれません。

16
bashBedlam