如何从远程服务器复制所有 *.xls 文件到不同目录?
How can I copy all *.xls files from a remote server, within different directories?
远程服务器在不同的目录深度中保存了大量文件。我想从服务器上提取所有这些 *.xls 文件并将其复制到我的本地桌面。
我可以使用以下方法找到所有文件:
find . -name '*.xls'
这正确地生成了一个列表,其中包含我需要的所有文件名的文件路径。
我也知道可能需要使用 scp,我可以对单个文件执行此操作:
scp user@server:path/path/path.../file.xls /Desktop
我试过:
find . -name '*.xls' -exec cp --parents \{\} /Desktop \;
但是这样不行,因为是从远程目录到本地。
我需要保留指向文件的文件路径,以便目录结构保持不变。
希望我的问题够清楚,我是新手,谢谢。
我目前有:
rsync -a --prune-empty-dirs --include '*ping.xls' --exclude '*pattern*' --exclude '*pattern2*' --exclude '*pattern3*' --exclude '...and_so_on*' ./remote_server ./Local_Desktop
有没有更优雅的方法来排除除包含模式中的内容之外的所有内容?目前它只是 rsync-ing 一切。
改为使用 rsync。不要设置 rsync,而是在需要时手动调用它。给src机器的顶层文件夹,给文件模式。
例如。
rsync -a --include=*.xls me@srcmachine:/opt/topfolder /tmp
已尝试:
rsync -a --prune-empty-dirs --include */ --include '*ping.xls' --exclude '*' ./server ./target
以及许多其他组合,我发现了这些的重要性:
''
适用于:
rsync -a --prune-empty-dirs --include '*/' --include '*ping.xls' --exclude '*' ./server ./target/
远程服务器在不同的目录深度中保存了大量文件。我想从服务器上提取所有这些 *.xls 文件并将其复制到我的本地桌面。
我可以使用以下方法找到所有文件:
find . -name '*.xls'
这正确地生成了一个列表,其中包含我需要的所有文件名的文件路径。
我也知道可能需要使用 scp,我可以对单个文件执行此操作:
scp user@server:path/path/path.../file.xls /Desktop
我试过:
find . -name '*.xls' -exec cp --parents \{\} /Desktop \;
但是这样不行,因为是从远程目录到本地。
我需要保留指向文件的文件路径,以便目录结构保持不变。
希望我的问题够清楚,我是新手,谢谢。
我目前有:
rsync -a --prune-empty-dirs --include '*ping.xls' --exclude '*pattern*' --exclude '*pattern2*' --exclude '*pattern3*' --exclude '...and_so_on*' ./remote_server ./Local_Desktop
有没有更优雅的方法来排除除包含模式中的内容之外的所有内容?目前它只是 rsync-ing 一切。
改为使用 rsync。不要设置 rsync,而是在需要时手动调用它。给src机器的顶层文件夹,给文件模式。
例如。
rsync -a --include=*.xls me@srcmachine:/opt/topfolder /tmp
已尝试:
rsync -a --prune-empty-dirs --include */ --include '*ping.xls' --exclude '*' ./server ./target
以及许多其他组合,我发现了这些的重要性: ''
适用于:
rsync -a --prune-empty-dirs --include '*/' --include '*ping.xls' --exclude '*' ./server ./target/