Directory
如何復製文件並同時創建目標目錄?
cp aaa/deep/sea/blob.psd
我想bbb/deep/sea/blob.psd
deep
如果和sea
目錄不存在,我該如何進行複制,bbb
以便副本創建所需的目錄並複製文件?現在我變得
No such file or directory
很深,海洋不存在。我查看了 man 幫助頁面和其他問題,但沒有任何問題。
我最接近的是
rcp
用於目錄:rcp -r aaa/deep/sea/ bbb/deep/sea/
雖然這會複製整個目錄和內容,但我只想要一個文件。試圖這樣做但是給了
cp: cannot create regular file bbb/deep/sea/blob.psd' such file or directory
嘗試在這種情況下使用這樣的下一個功能:
copy_wdir() { mkdir -p -- "$(dirname -- "$2")" && cp -- "$1" "$2" ; }
並將其用作
copy_wdir aaa/deep/sea/blob.psd bbb/deep/sea/blob.psd
順便說一句,GNU
cp
有一個--parents
選擇。它真的很接近你想要的,但不完全是。它還將創建
aaa
您似乎不需要的目錄。但是,您可以先 cd 到aaa
並複制如下:cd aaa && cp --parents deep/sea/blob.psd ../bbb/
使用coreutils
install
中的程序很容易,該程序通常由automake等建構系統用於此目的:install -D /path/to/source /path/to/destination
請注意,就像
install
創建路徑的所有mkdir -p
部分一樣,請參閱man install
. 我很好奇你為什麼不包括你為什麼要這樣做。打電話mkdir
很cp
容易。