短い答え
コマンドライン(ターミナル)を使用:
cp -r -n ~/Desktop/src/* ~/Desktop/destination/
上記のコマンドは、に既に存在するコンテンツを上書きせずに、src
コンテンツとサブディレクトリを追加します。destination
destination
長い答え
コンテンツが重複している場合でも、cp
それを使用して使用できます。デスクトップに2つのフォルダーがあると仮定します:the src
およびthe destination
folder and you want to merge src
into destination
:
マージするには、次のようにします。
cp -r ~/Desktop/src/* ~/Desktop/destination/
注これを使用すると、のコンテンツsrc
はdestination
フォルダー内のコンテンツを上書きし、にないものを追加しますdestination
。あなただけから欠落したファイルを追加したい場合、それは問題ではないはずsrc
にdestination
。
ALSOがありますどのように多くのサブディレクトリにそれを問題ではありません、それだけで再帰的に各フォルダを通過しますと、それは内容が上書きされますし、中に欠けているものを追加しますdestination
フォルダを。
しかし
PITFALL巨大なファイル(ビデオファイルなど)がある場合、すべてが上書きされるまで待ちたくないため、多くのオーバーヘッドが追加されます。
PITFALL SOLUTION:代わりに、-n
フラグを使用して上書きをスキップできます。
cp -r -n ~/Desktop/src/* ~/Desktop/destination/
これは、-n
manページのフラグの説明です。
man cp
-n Do not overwrite an existing file. (The -n option overrides any
previous -f or -i options.)
参考文献
- /programming/5088332/overhead-of-a-flag-in-cp-command