Unixでディレクトリをコピーする


78

端末ウィンドウを使用して、Unix上でディレクトリ構造dir1をdir2(すべてのサブディレクトリを含む)にコピーするにはどうすればよいですか?


2
"cp -r / dir1 / dir2"これは正しいですか??
ディネシュクマール

はい、それは正しいです。回答の1つをソリューションとしてマークすることもできます。
qroberts

回答:


115
cp -rf /source/path/ /destination/path/

-r =再帰的、すべてのサブディレクトリをコピー

-f = force、既存の宛先ファイルを開くことができない場合、削除して再試行

-fフラグを使用する場合は、コピー先を強制的に上書きするため、注意が必要です。この提案をありがとう@Nifle。

必要に応じて、ディレクトリ内のすべてのファイルをコピーするために*ワイルドカードを使用できます。


11
fフラグを使用する必要があることに同意しません。-f if an existing destination file cannot be opened, remove it and try again
ライフル

個人的には、常に-fフラグを使用します。良い習慣ではないので、おそらくあなたは正しいでしょう。
qroberts

あなたがそれが何をするかを知っていて、あなたがそれをしていることを知っているなら、それは大丈夫です。ただし、この場合、経験の浅いユーザーの場合は適切ではない可能性があります。
ライフル

@Nifleええ、私はあなたが言っていることを理解しています。ただ、もし彼がそれを強制すれば、彼がそうしなかった場合よりも、それが機能する可能性が良いということです。それはすべてあなたが何をしているのか、そしてそれが何をするのかを理解することにかかっています。
qroberts

-f<source>を<dest>に上書きする場合など、<source>を<dest>にコピーする場合に役立つフラグについて回答にメモを入れると、自分で
投票し

11

一方でcp -R答えが(BTW BSD上のフラグの場合は首都にする必要があり、両方のは、Linuxでサポートされています)、右が、そこにあるタールを含む古い呪文は

$ tar cf - . | (cd DIR; tar xf - )

なんでそんなことするの?なぜなら、tarはハードリンクとシンボリックリンクの両方についてかなり洗練された理解を持っているからです。

コピーして、既存のシンボリックリンクを同じテキストを持つシンボリックリンクに置き換えますか?または、同じターゲットへのリンク(補正のために相対パスを調整)を使用しますか?または、ターゲットのビットごとのコピーで?

オリジナルの2つのファイルがハードリンクされている場合、新しい構造にはデータのコピーが2つあるべきですか、それとも1つだけですか?

決定、決定。Tarには適切なデフォルトがありますが、それについて非常に具体的に説明できます。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.