Shell
創建新文件時創建父目錄
我知道
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
正常文件,如果缺少則將創建foo
andfoo/bar
目錄(無論 umask 的權限如何,都具有權限 0755)。