我的 Unix 可执行文件的工作是执行长时间的计算,我为它添加了一个中断/恢复功能,如下所述。
程序会定期将迄今为止找到的所有相关数据写入检查点文件,然后可以将其用作“恢复”操作的起点。
要中断程序,我使用Ctrl+ C。
这种方法的唯一问题是,如果在程序写入文件时发生中断,我会留下一个无用的半写入文件。
到目前为止我能找到的唯一修复如下:
有没有更干净、更好的方法来创建“可中断”的 Unix 可执行文件?
我需要(从我的终端)发送一封电子邮件,其中包含来自我通过 ssh 访问的远程主机的附件。我已经知道要远程执行某些操作,我使用
ssh -p myport myusername@myhost.com "doSomething"
我也知道要发送带附件的电子邮件,我会
echo "Mail content" | mailx -s "Mail title" -a attachment.txt -S from="myname@gmail" destname@gmail
因此,两者的天真组合将简单地用doSomething
第二行的所有内容替换第一行。这当然不起作用,因为可怕的嵌套双引号。如何使这项工作(如果可能的话,干净利落)?任何帮助表示赞赏。
我使用以下命令将一个目录的内容完整、递归地复制到另一个目录中:
rsync -avzhe /path1/to1/dir1/* /path2/to2/dir2/
它按照我的预期工作,除了第一个文件(按字母顺序排列),无论是目录还是文件,都不会被复制。所有其他文件都会被复制。为什么 ?
如果重要的话,我的操作系统是 MacOS 10.14.6。