使用
cp -fr /source/file /destination
これでおそらく問題は解決するはずです。
この質問は既に議論されていますが、次のような小さなスクリプトを書くことができます:
#!/bin/bash
if [ ! -d "$2" ]; then
mkdir -p "$2"
fi
cp -R "$1" "$2"
このスクリプトを少し説明
<オール>
#!/bin/bash
:コンピュータに bash
を使用するよう指示します 通訳。
if [ ! -d "$2" ]; then
:指定した 2 番目の変数がまだ存在しない場合...
mkdir -p "$2"
:パスで指定された親ディレクトリを含めて、そのディレクトリを作成します。
mkdir -p one/two/three
を実行中 作成します:
$ mkdir -p one/two/three
$ tree one
one/
└── two
└── three
-p
を指定しない場合 タグを使用すると、ディレクトリ one
の場合にエラーが発生します そして two
存在しない:
$ mkdir one/two/three
mkdir: cannot create directory ‘one/two/three’: No such file or directory
fi
:if を閉じます
cp -R "$1" "$2"
:指定した最初の変数のファイルを、指定した 2 番目の変数のディレクトリにコピーします。
script.sh mars pluto
を実行した場合 、 mars
最初の変数 ($1
) と pluto
2 番目の変数 ($2
).
-R
フラグは、これを再帰的に行うことを意味するため、cp
コマンドは all を通過します 最初の変数からファイルとフォルダーを取得し、それらを 2 番目の変数のディレクトリにコピーします。