今私はこれを使用します:
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
いつも私にとって効果的です。