当我在本地机器上编写完脚本后,我需要将它们复制到集群中来执行代码。例如,我想将当前目录中的所有 matlab 文件复制到服务器 id@server 的目录中。
任何人都可以帮助编写一个非常基本的 Makefile 来实现此目的吗?
多谢!
约翰
这是 Jens 答案的改编版,以及我在这里的答案,它利用 Make 的功能仅复制自上次将文件复制到服务器以来已修改的文件。这样,如果您有数百个.m文件并且修改了其中一个文件,则不会将所有文件复制到服务器。
它使用一个空的隐藏文件 ,.last_push该文件仅用于记录(通过其自己的时间戳)我们上次将文件复制到服务器的时间。
FILES = $(shell find . -name *.m)
SCP = scp id@server:path/relative/to/your/serverhomedir
LAST_PUSH = .last_push
.PHONY : push
push : $(LAST_PUSH)
$(LAST_PUSH) : $(FILES)
$(SCP) $?
touch $(LAST_PUSH)
Run Code Online (Sandbox Code Playgroud)
make使用或运行此命令make push。关键是变量,它填充了比目标更新的所有先决条件的列表 - 在本例中,是比上次推送更新的文件$?列表。.m
| 归档时间: |
|
| 查看次数: |
3394 次 |
| 最近记录: |