ファイルがターゲットに存在し、ターゲットよりも最新の場合にのみ、ディレクトリを繰り返しコピーします。

ファイルがターゲットに存在し、ターゲットよりも最新の場合にのみ、ディレクトリを繰り返しコピーします。

ファイルがターゲットに存在し、ファイルがターゲットよりも最新であり、ディレクトリの場合、ファイルが存在する必要がある場合にのみファイルおよび/またはディレクトリをコピーするにはどうすればよいですか?再帰的
次の機能を使用した複製

 $ ls -a ~/.config
 gtk-2.0/             
 gtk-3.0/
 SpeedCrunch/

 $ ls -a /other/path/home/.config/
 gtk-2.0/             
 gtk-3.0/
 SpeedCrunch/


$ rsync -u --existing ~/.config /other/path/home/
skipping directory .

仕事できません。

Linuxユーティリティとは何ですか?どのように実行/解決するのですか?前にありがとう

ベストアンサー1

クイック:

再帰スイッチ「-r」を含めることを忘れました。

rsync -u --existing -r ~/.config /other/path/home/

追加:

あるいは、再帰を含むものと同じで、次のようないくつかの重要な属性を維持するスイッチの-a使用を検討することができます。-rlptgoD

  • -r: ディレクトリに再帰
  • -l:シンボリックリンクをシンボリックリンクにコピーします。
  • -p: 権限の維持
  • -t: 修正時間を維持
  • -g:予約済みグループ
  • -o:所有者を維持する(スーパーユーザーのみ)
  • -D: --devices --specials と同じ特殊ファイルを保持します。

以下を使用してテストします。

mkdir src
touch src/file{1..3}
touch src/thefile
# Destination:
mkdir dst
touch dst/file{1..3}
touch -d 20201023 dst/thefile
# List all
free -D src dst

今試してください:

rsync -rt -uPv --existing src dst/

私は以下を使用しました:

  • -r: ディレクトリに再帰
  • -t: 修正時間を維持
  • -u:受信機で最新のファイルをスキップする
  • -P:転送プロセス中の進捗状況を表示します。
  • -v:詳細を増やします。
  • --existing: シンクへの新しいファイル生成をスキップします。

おすすめ記事