Linux シェルで cp コマンドを使用して、ディレクトリ全体を別のディレクトリにコピーするにはどうすればよいですか?

Linux シェルで cp コマンドを使用して、ディレクトリ全体を別のディレクトリにコピーするにはどうすればよいですか?

ディレクトリ、たとえば「work」があります: ~/work/ このディレクトリにはいくつかのサブフォルダ (d1、d2...) があり、これらのサブフォルダにファイルがあります。 同じフォルダにバックアップ コピーを作成したいので、次のようになります: ~/backup/work/ ただし、 cp -r ./work ./backup フォルダ「work」を使用すると、サブフォルダのみがコピーされます (つまり、現在は ~/backup/d1 ~/backup/d2... です)。 これを機能させる方法をご存知ですか? 私はシェルにかなり不慣れなので、何かが欠けています :)

答え1

cp は先頭のディレクトリを作成しません。存在しないパスが検出されると、それがコピーされるディレクトリの新しい名前であると想定されます。

mkdir workまず、すでに存在するディレクトリにコピーしてみてくださいcp -r work backup

答え2

試す

rsync -avz ./work ./backup

答え3

cp -r ./work/ ./backup/

または

cp -r ./work ./backup/work

答え4

Linux システムを使用している場合:

cp -rT --parents work backup/work

関連情報