我正在尝试递归下载一个目录,但仅下载具有某些扩展名的文件,同时还维护目录结构。
我现在使用的命令是
scp -rp user@address:"/path/to/directory/foo/*\.{jpg,mp4}" ~/local/directory/foo/
.其中a)要求我在本地创建目录foo
,b)它只下载根目录中的文件(递归不起作用)。
我之前使用的命令是scp -rp user@address:"/path/to/directory/foo" ~/local/directory/
,它没有这些问题,但也下载了我不需要的所有文件。
答案1
我不认为这可以通过 实现scp
。您可以递归复制所有文件,也可以非递归复制选定的文件类型。请注意,您不需要转义.
。
但你可以使用rsync
:
rsync -avm --include='*/' --include='*.jpg' --include='*.mp4' --exclude='*'\
user@address:/path/to/directory/foo ~/local/directory/
使用的选项:
-a
存档模式-v
增加冗长-m
修剪空目录--include='*/'
包括子目录--include='*.jpg'
包含*.jpg
文件--include='*.mp4'
包含*.mp4
文件--exclude='*'
排除其他文件类型