サブディレクトリがあるフォルダがたくさんあります。下記をご覧ください。
Books
-- Temp1.nfo
-- Temp2.txt
-- Temp3.doc
Books 2
-- Temp4.nfo
-- Temp5.txt
-- Temp6.doc
txtとdocファイルの拡張子をコピーしてディレクトリに入れたいです。一例
Final
--Temp2.txt
--Temp3.doc
--Temp5.txt
--Temp6.doc
cpコマンドを使用してこれを実行できます。問題は、状態を表示できない、またはテストを実行できないことです。
cp -u **/{*.mkv,*mp4,*avi} /home/joedoe/Books/
これを行うためにrsyncコマンドを書くのに役立つ人はいますか?
答え1
SRC rsync
DEST構文はSRC DEST構文と非常によく似ているため、cp
次のようなものを使用できます。
rsync -auv */*.{txt,doc} /home/joedoe/Books/
すべての* .txtファイルと* .docファイルをターゲットディレクトリにコピーします。
オプション:
-a
アーカイブモード(ショートカット-rlptgoD
)-u
受信機で最新のファイルをスキップする(例cp -u
:)-v
冗談を増やす
アーカイブオプションには-a
再帰オプションも含まれているため、必要に応じて追加オプションを使用してこのフラグを無効にできます-r
(ディレクトリもパターンと一致し、再帰を無効にするためコピーされます)。--no-r
-a
Book/my.doc/
*.doc
-a --no-r
出力は--dry-run
次のとおりです。
$ rsync --dry-run -auv */*.{txt,doc} /home/joedoe/Books/
sending incremental file list
created directory /home/joedoe/Books
Temp2.txt
Temp3.doc
Temp5.txt
Temp6.doc
sent 221 bytes received 69 bytes 580.00 bytes/sec
total size is 11 speedup is 0.04 (DRY RUN)
複数のパラメータを追加することも、-v
より詳細な出力を取得することもできます。-vv
-vvv