我有一个(几千个)指向远程服务器上文件的绝对路径的列表,需要将其下载到我的PC上。
我还需要这些文件来保持这些文件的目录结构完整。
例子:
/* UNIX Server File-System */
/home/username/
stuff/
more-stuff/
data/
file1.txt
/* Local Windows File-System After Transfer */
C:\Users\username\Documents\home\username\
stuff\
more-stuff\
data\
file1.txt
理想情况下,我将使用某种类型的FTP将这些文件发送到我的PC。但是,我不知道支持获取文件列表的程序或CLI命令。我需要从特定目录中获取特定文件,而不仅仅是下载整个目录。
我的问题:如何使用绝对路径列表自动将文件下载到本地主机?(同时保持目录结构完整)
另外,我在PHP数组中有这些文件。因此,我可以将列表导出为JSON,CSV,XML等。
如果您介意的话,可以使用rsync
类似
rsync -av --files-from=/path/yourlist.txt / remote:/backup
在哪里
/path/yourlist.txt
您可以使用完整路径放置文件列表/
要添加到列表中文件名的路径(如果它们是完整路径名/
)remote:/backup
远程主机名及其相对路径您可以--files-from
从[ 1 ]了解更多搜索man rsync
--files-from = FILE
Using this option allows you to specify the exact list of files to transfer (as read from the specified FILE or - for standard input). It also tweaks the default behavior of rsync to make transferring just the specified files and directories easier:
- 所述--relative(-R)选项隐含,它保留(如果你想把它们关掉使用--no相对或--no-R),其被用于在该文件中的每个项目中指定的路径信息。
- 该--dirs(-d)选项是隐含的,(如果你想要把它们关掉使用--no-迪尔斯或--no-d),这将创建在目标列表中指定,而不是大肆跳过这些目录。
- 本-归档(-A)选项的行为并不意味着--recursive(-R),所以明确指定它,如果你想要它。
- 这些副作用更改了rsync的默认状态,因此命令行上--files-from选项的位置与其他选项的解析方式无关(例如-a在--files-之前或之后的工作方式相同)以及--no-R和所有其他选项)。
...在手册页中还有更多...
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句