cp コマンドは、フォルダの複製用に別の Ubuntu バージョンに追加のコピーを作成します。

cp コマンドは、フォルダの複製用に別の Ubuntu バージョンに追加のコピーを作成します。

編集:重複ソリューションが見つかりました:rsync -a --delete https://stackoverflow.com/questions/23698183/how-to-force-cp-to-overwrite-directory-instead-of-creating-another-one-inside

動作する新しいスクリプト:

#!/bin/bash

numCopy=$1
shift
cmdline="${@}"
echo "prepare folders"
for ((i=1;i<=$numCopy;i++));
do
   (rsync -a --delete $cmdline/ $cmdline$i/; ) &
   (echo "preparing folder clone: $i") &
done
wait

マルチスレッドフォルダコピーの場合、

#!/bin/bash

numCopy=$1
shift
cmdline="${@}"
echo "prepare folders"
for ((i=1;i<=$numCopy;i++));
do
   (cp -rf $cmdline $cmdline$i; ) &
   (echo "preparing folder clone: $i") &
done
wait

スクリプトは、マイコンピュータに問題なくソースフォルダを$cmdline(存在しない)ターゲットにコピーします。$cmdline$iUbuntu16.04しかし、クラウドマシンで同じスクリプトを実行すると、Ubuntu18.04、これは次のことを行います。

  • ソースをターゲットにコピーする(これだけが必要です)
  • また、ソースをターゲットにコピーします。 (destination/source私はこれをしたくない)

これはプログラムを中断しませんが、不要なクラウドスペースを消費したくありません。

他のバージョンのUbuntuがターゲットフォルダにセカンダリコピーを追加するのはなぜですか?

私はこのスクリプトを次のように使用します。

./myscript.sh 2 foldertest

これにより、フォルダテストがフォルダテスト1とフォルダテスト2にコピーされます。最初の引数が32の場合、最大foldertest32まで32のコピーを作成します。

cp のドキュメントに -r は再帰コピーのためのものであると示されています。これは、WindowsまたはUbuntuグラフィックターミナルからコピーして貼り付けるのと同じように、ソースフォルダの完全な複製を実行するために必要です(フォルダ2、フォルダ3の作成...場所)。また、最大64個のクローンを作成し、すでに64個のクローンがある場合は、64個の質問に答えたくないので、尋ねずにファイルを強制的にコピーするように-fを追加しました。

必要な動作に関する追加情報は次のとおりです。

フォルダA:a.txt b.txt c.txt

フォルダA1、A2、A3、A4..は次のとおりです。

a.txt
b.txt
c.txt

しかし、それは:

a.txt
b.txt
c.txt
A

通常、ファイルをファイルにコピーすると、ファイルが存在する場合は上書きされます。コピーする代わりに、フォルダに対して同じ上書き動作が必要です。

ベストアンサー1

cp -rf source destすでに存在する場合、dest結果は異なります。

  • 存在しない場合は、名前付きコピーがdest作成されます。ファイルが含まれていると仮定すると、ファイルが作成されます。sourcedestsourcef1dest/f1
  • destディレクトリとして存在し、名前付きdestファイルが存在しない場合は、その内容をすべてsourceコピーします。source入力する dest。上記の例を使用するとdest/source/f1
  • destファイルとして存在し、ディレクトリsourceの場合、コピーは失敗します。
  • destディレクトリとして存在し、名前がdestsource
  • destファイルとして存在する場合source、ファイルの場合はdest内容で上書きされますsource

既存の宛先ディレクトリを削除するには、(cp -rf $cmdline $cmdline$i; ) &に変更できます(rm -rf $cmdline$i && cp -rf $cmdline $cmdline$i; ) &

おすすめ記事