使用するとき
cp -R inputFolder outputFolder
結果はコンテキスト依存です:
outputFolder存在しない場合は作成され、クローンフォルダのパスはになりますoutputFolder。- 場合
outputFolderが存在する場合、作成されたクローンは次のようになりますoutputFolder/inputFolder
インストールスクリプトを作成したいので、これは恐ろしいことです。ユーザーが誤って2回実行した場合outputFolder、最初に作成され、2回目の実行ですべてのものがもう一度作成されoutputFolder/inputFolderます。
- 常に最初の動作が必要です:オリジナルの隣に(兄弟として)クローンを作成します。
cpポータブルにしたい(たとえば、MINGWはrsync出荷されていない)- 私はチェックしました
cp -R --parentsが、これはディレクトリツリーのすべての方法でパスを再作成します(したがって、クローンは作成されませんoutputFolderがsome/path/outputFolder) --remove-destinationまたは--update、2が何も変更しない場合でも、物事はコピーされますoutputFolder/inputFolder
outputFolder(フォルダが存在しない場合は...)の存在を最初に確認せずにこれを行う方法はありますrm -rf outputFolderか?
合意された移植可能なUNIXの方法は何ですか?
rsyncか?
cp、2つのtarコマンド間のパイプは、ツリーをコピーするための優れた信頼できる方法です。
rsync出荷されていないMINGWで動作するようにします。
tar -C input -cf - . | tar -C output -xf -動作します。-C作業ディレクトリを変更しますが、これは標準オプションではないため、サポートされていない場合は、最初に正しい作業ディレクトリで2つのtarを実行する必要があり( cd input && tar -cf - . ) | ( cd output && tar -xf - )ます。
mv?