Shell

創建新文件時創建父目錄

  • November 28, 2016

我知道mkdir -p /path/to/new/directory將創建一個新目錄以及父目錄(如果需要)。

如果我必須創建一個新文件及其父目錄(部分或全部父目錄不存在),我可以使用mkdir -p /path/to/directory && touch /path/to/directory/NEWFILE. 但是,還有其他命令可以實現這一點嗎?

AFAIK,沒有這樣的標準,但你可以自己做:

ptouch() {
 for p do
   _dir="$(dirname -- "$p")"
   mkdir -p -- "$_dir" &&
     touch -- "$p"
 done
}

然後你可以這樣做:

ptouch /path/to/directory/file1 /path/to/directory/fil2 ...

一些系統有一個install命令可以被告知創建缺少的路徑組件。

隨著 GNU 的實現install

install -DTm644 /dev/null foo/bar/baz

將創建一個具有權限 0644 的空baz正常文件,如果缺少則將創建fooandfoo/bar目錄(無論 umask 的權限如何,都具有權限 0755)。

引用自:https://unix.stackexchange.com/questions/168580