ディレクトリを別のディレクトリにコピーし、中間ディレクトリを作成する

ディレクトリを別のディレクトリにコピーし、中間ディレクトリを作成する

全体をコピーしたいのですが/usr/share/ゾーン情報/ディレクトリを /var/www/clients/client1/web5/./ にコピーします。usr/share/ゾーン情報/( は/./明確さと書式設定のために追加されています)

/var/www/clients/client1/web5/ディレクトリは存在しますが、その下にあるusr/share/ゾーン情報ディレクトリは存在しません。

これを単一のコマンドで実行する方法はありますか、それともmkdir -p最初に呼び出す必要がありますか?

まさにそうするだろうと思ったのですcp --parentsが、ディレクトリ全体ではなく、単一のファイルをコピーする場合にのみ機能するようです。

答え1

の宛先場所を指定しているため/var/www/clients/client1/web5/./usr/share/zoneinfo/cpはまず、ファイルを書き込むディレクトリが存在するかどうかを確認します。したがって、まずディレクトリを作成する必要があります。ただし、/var/www/clients/client1/web5/./usr/share/がすでに存在する場合は、次の操作を実行できるはずです。

cp -pr /usr/share/zoneinfo /var/www/clients/client1/web5/./usr/share/zoneinfo

ディレクトリを書き込むための宛先ディレクトリが存在するためですzoneinfo

答え2

rsync -a --relativeうまくいきました。

rsync -a --relative /usr/share/zoneinfo/ /var/www/clients/client1/web5/

功績はユニックス忍者の上このツイート

関連情報