我有一堆带有子目录的文件夹,请参见下文
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
。