Command-Line
在不存在的子目錄中創建文件 (../new_folder/new_folder/new_file.ext)
現在我用這個:
mkdir -p a/b/c/d/e; touch a/b/c/d/e/file.abc;
有沒有更有效的方法?
就使用的工具而言:沒有。
touch
如果您嘗試在一個不存在的目錄中操作,將會失敗(正確地),並且mkdir
只做一件事:創建目錄,而不是普通文件。兩種不同的工作需要兩種不同的工具。也就是說,如果您在談論腳本中的行數或可讀性方面的效率,您可以將其放入函式中:
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
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
查看install(1)聯機幫助頁;它具有設置權限、保留時間戳等選項。