gpt4 book ai didi

linux - 如何使用 while read 行将文件从一个列表文件移动到另一台服务器?

转载 作者:太空宇宙 更新时间:2023-11-04 10:55:21 25 4
gpt4 key购买 nike

目标是我想从不同的服务器监控一个目录。例如,远程服务器是 user@host

我有 list.txt 将要移动的文件的内容列表。 list.txt 位于远程服务器中。

目前我有这段代码。

ssh user@host cat /full-path/list.txt |
{
while read line;
do mv user@host:/full-path/$line user@host:/full-path/done/;
done;
}

当我运行上面的代码时,存在错误。没有这样的文件或目录。

但是当我从list.txt中随机登录到user@hostcat一个文件时,该文件存在。

最佳答案

while 循环在本地服务器上运行。您需要将脚本放在引号中,以便它成为 ssh 命令的参数。

... 或此处文档,如下所示:

ssh user@host <<':'
while read line; do
mv /full-path/"$line" /full-path/done/
done </full-path/list.txt
:

...或更简洁

ssh user@host 'cd /full-path && xargs -a list.txt mv -t done'

另请注意缺少 useless cat和本地文件名解析(mv 不会知道您尝试使用的 SSH 远程路径语法)。

关于linux - 如何使用 while read 行将文件从一个列表文件移动到另一台服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29058587/

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