GNU/Linux >> Linux の 問題 >  >> Linux

再帰的で上書きしないファイルコピー?

rsync を使用できます (ローカル コピーも行います)

rsync -r --ignore-existing --include=*/ --include=*.js --exclude=* source/ destination
  • -r ディレクトリに再帰する
  • --ignore-existing 目的地の既存のファイルを無視する
  • includeexclude フィルターの意味:すべてのディレクトリを含める、すべての *.js ファイルを含める、残りを除外する。最初のインクルードが必要です。それ以外の場合、コンテンツがスキャンされる前に、最終的な除外によってディレクトリも除外されます。

最後に、 -P を追加できます 進行状況を見たい場合は、--list-only 実際にコピーせずに何をコピーするかを確認したい場合、および -t タイムスタンプを保持したい場合。

これは関係ありませんが、最近、15 年分のドキュメントをあるパーティションから別のパーティションに移動したときに、rsync コマンドを学びました。私のファイルがそこにあると確信したので、古いパーティションを消去し、そこに他のものをいくつか入れました。後ですべてのタイムスタンプを失ったことに気付き、-t フラグを発見しました。私の苦しみを分かち合いたかっただけです:'(


これは、cp を使用して達成することもできます。こちらをご覧ください:

sudo cp -vnpr /xxx/* /yyy

xxx =ソース

yyy =目的地

v =詳細

n =上書きなし (上書きなし)

p =権限を保持

r =再帰


man ページを見ると、 -n が必要なようです オプション。

-n, --no-clobber
   do not overwrite an existing file (overrides the previous -i option)

Linux
  1. Ansibleガイド:Ansibleを使用してファイルを管理する

  2. ディレクトリ内のファイルタイプに関する再帰的な統計?

  3. Bash を使用してファイルを検索してコピーする

  1. n バイトのデータ x をファイルにコピー

  2. smbclient put 中のプログレスバー

  3. ドットで始まる名前のファイルをコピーするにはどうすればよいですか?

  1. 追加ファイルを .bashrc に含める

  2. ファイルを bash シェル スクリプトに含める方法

  3. ファイルをトランザクション的にコピーする方法は?