gpt4 book ai didi

linux - 从 UNIX 系统目录下载文件的 Shell 脚本

转载 作者:太空宇宙 更新时间:2023-11-04 05:51:27 33 4
gpt4 key购买 nike

有人可以帮我写一个 shell 脚本来从 Linux/UNIX 系统下载文件吗?

问候

最佳答案

在 UNIX 系统(例如 Linux 和 OSX)上,您可以访问名为 rsync 的实用程序。 。它是默认安装的,是用于从另一个 UNIX 系统下载文件的工具。

它是 cp(复制)命令的直接替代品,但功能更强大。

要使用 SSH 将目录从远程系统复制到您的系统,您可以执行以下操作:

rsync username@hostname:path/to/dir .

(注意末尾的点,这意味着“请将所有内容都放在这里”,您也可以给出应放置文件的本地目录的名称。)

要仅下载某些特定文件,请使用以下命令:

rsync 'username@hostname:path/to/dir/*.txt' .

(请注意引号:如果省略它们,您的 shell 将尝试在本地扩展 *.txt 部分,将会失败并给出错误。)

有用的标志:

--progress:显示进度条
--append:如果文件仅部分下载,则从上次停止的地方恢复

我发现 rsync 实用程序非常有用,我在 shell 中为它创建了一个别名,并将其用作“ super 副本”:

alias cpa 'rsync -vae ssh --progress --append'

使用该别名,在计算机之间复制文件就像在本地复制文件一样简单:

cpa user@host:file .

让它变得更好

由于 rsync 使用 SSH,因此它有助于设置私钥/公钥对,因此您不必每次都输入密码: How do I setup Public-Key Authentication?

此外,您可以在 .ssh/config 文件中记下您的用户名,并为远程主机指定一个短名称:read about it here .

例如,我有这样的东西:

Host panda
Hostname panda.server.long.hostname.com
User rodin

通过此设置,我从 panda 服务器下载文件的命令如下:

cpa panda:path/to/my/files .

大家都很高兴。

关于linux - 从 UNIX 系统目录下载文件的 Shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35147085/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com