フォルダーをソースから宛先にコピーしようとしています。宛先フォルダーは常に存在するとは限りません。
宛先フォルダーが存在しない場合、どのコピーコマンドが宛先フォルダーを作成しますか?
例:
$(CP) $(HOME)/text.txt $(DEST)/dir1/dir2/text.txt
フォルダdir1
とdir2
は常に存在するとは限らないため、作成する必要があります。
フォルダーをソースから宛先にコピーしようとしています。宛先フォルダーは常に存在するとは限りません。
宛先フォルダーが存在しない場合、どのコピーコマンドが宛先フォルダーを作成しますか?
例:
$(CP) $(HOME)/text.txt $(DEST)/dir1/dir2/text.txt
フォルダdir1
とdir2
は常に存在するとは限らないため、作成する必要があります。
どのシェルを使用していますか?
とにかく、クールなショートカットはないようです。mkdir
最善の方法は、とを単純に組み合わせることcp
です。あなたの例に従って:
mkdir -p dir1/dir2 && cp ~/text.txt ~/dir1/dir2
このコマンドは、test.txtをdir2に配置します。お役に立てれば!
ところで、の構文cp
はcp [source] [destination dir]
最新バージョンのGNUmakeを使用している場合は、ターゲットのディレクトリを多かれ少なかれ自動的に作成するために使用できる巧妙なトリックがあります。
.SECONDEXPANSION:
%/.:
mkdir -p -- "$*"
ここで、宛先ディレクトリを作成するターゲットごとに、「| $$(@ D)/」を追加します。前提条件として:
$(TARGET) : $(PREREQUISITES) | $$(@D)/.
...