rsync を使用できます (ローカル コピーも行います)
rsync -r --ignore-existing --include=*/ --include=*.js --exclude=* source/ destination
-r
ディレクトリに再帰する--ignore-existing
目的地の既存のファイルを無視するinclude
とexclude
フィルターの意味:すべてのディレクトリを含める、すべての *.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)