/data
にディスクをマウントしました。これは現時点では空です。
mkdir -p
を実行するには、rsync
よりもmkdir
が必要です。レベル4にある必要があるファイルとして、つまり/data/dir_1/dir_2/dir_3/filename
のときdir_1
、dir_2
およびdir_3
は存在しません。
必要なサブディレクトリを手動で作成すると、次のコマンドを使用してrsyncを実行できます。
rsync -avz source_diretory/ /data/dir_1/dir_2/dir_3
しかし、サブディレクトリを作成しないと、このコマンドはエラーをスローします:
mkdir: cannot create directory ‘/data/dir_1/dir_2/dir_3/’: No such file or directory
Rsyncのmanページを読んでGooglingを試し、-r
-R
を使用してみましたが、動作しませんでした。
rsync
はmkdir -p
のような処理を実行できますか、それとも範囲外ですか?
rsync
コマンドはディレクトリツリーを作成しないため、次のコマンドを実行してこれを行うことができます。
mkdir -p /data/dir_1/dir_2/dir_3
rsync
コマンドの前、または -rsync-path オプションを使用:
--rsync-path = PROGRAM rsyncを起動するためにリモートマシンで実行するプログラムを指定するには、これを使用します。
コマンドは次のとおりです。
rsync -avz source_diretory/ --rsync-path="mkdir -p /data/dir_1/dir_2/dir_3 && rsync" /data/dir_1/dir_2/dir_3
これが便利な link です。