存在しないサブディレクトリ(../new_folder/new_folder/new_file.ext)にファイルを作成する

存在しないサブディレクトリ(../new_folder/new_folder/new_file.ext)にファイルを作成する

今私はこれを使用します:

mkdir -p a/b/c/d/e; 
touch a/b/c/d/e/file.abc; 

より効率的な方法がありますか?

答え1

install -D src_file /tmp/a/b/c/d/e/f/g/h/i/dst_file
install -Dt /tmp/a/b/c/d/e/f/g/h/i your_file

空のファイルだけをタッチしたい場合:

install -D /dev/null /tmp/a/b/c/d/e/f/g/h/i/empty_file

それを見てください(これ設置(1)マンページには、権限の設定、タイムスタンプの保持などのオプションがあります。

答え2

使用されたツールに関して:なし。 touch存在しないディレクトリで作業しようとすると、次のいずれかが実行されるmkdirと(正しく)失敗します。目次、珍しい文書。 2つの異なるタスクには2つのツールが必要です。

つまり、スクリプトの行数やスクリプトの読みやすさの点で効率性について話している場合は、関数に入れることができます。

seedfile() {
    mkdir -p -- "$(dirname -- "$1")" &&
        touch -- "$1"
}

seedfile /path/to/location/one/file.txt
seedfile /path/to/somewhere/else/file.txt
seedfile local/paths/work/too/file.txt

答え3

この試み:

mkdir -p a/b/c/d/e && touch "$_"/file.abc

いつも私にとって効果的です。

関連情報