小编d-b*_*d-b的帖子

在后台运行两个脚本?&& 和 & 不起作用?

我想在后台相继运行两个 shell 脚本,最好也使用nohup.

我从

% nohup a.sh &
Run Code Online (Sandbox Code Playgroud)

a这在后台运行。

% nohup a.sh && nohup b.sh
Run Code Online (Sandbox Code Playgroud)

运行a然后b(如果a成功)

但如何在后台启动最后一个组合呢?

如果我做

% nohup a.sh && nohup b.sh &
Run Code Online (Sandbox Code Playgroud)

a将在前台运行,阻止提示符,然后b在后台启动,将控制权返回给提示符。

% nohup a.sh & && nohup b.sh &
Run Code Online (Sandbox Code Playgroud)

这给出了一个错误:zsh: parse error near '&&'

如何在后台启动两个进程?

zsh background-process

14
推荐指数
2
解决办法
1658
查看次数

比 rsync 更智能的文件传输?

我有一个大文件(2-3 GB,二进制,未记录格式),我在两台不同的计算机上使用它(通常我在桌面系统上使用它,但当我旅行时,我把它放在我的笔记本电脑上)。我使用 rsync 来回传输这个文件。

我不时对这个文件进行小的更新,更改不到 100 kB。这发生在两个系统上。

据我所知,rsync 的问题在于,如果它认为文件在源和目标之间发生了变化,它会传输完整的文件。在我的情况下,当文件的一小部分发生更改时,感觉就像是在浪费时间。我设想了一个协议,其中源和目标上的传输代理首先校验整个文件,然后比较结果。当他们意识到整个文件的校验和不同时,他们将文件拆分为 A 和 B 两部分,分别对它们进行校验。

啊哈,B 在两台机器上是一样的,我们忽略那一半。现在它将 A 拆分为 A1 和 A2。好吧,只有A2发生了变化。将 A2 拆分为 A2I 和 A2II 并进行比较等。以递归方式执行此操作,直到找到例如三个部分,每个部分均为 1 MB,在源和目标之间存在差异,然后仅传输这些部分并将它们插入目标文件中的正确位置。今天,有了快速的 SSD 和多核 CPU,这种并行化应该非常高效。

所以我的问题是,今天是否有任何工具可以像这样(或以我无法想象但具有类似结果的另一种方式)工作?

已发布澄清请求。我主要使用 Mac,所以文件系统是 HFS+。通常我这样启动 rsync

rsync -av --delete --progress --stats- 在这种情况下,我有时使用 SSH,有时使用 rsyncd。当我使用 rsyncd 时,我是这样启动的rsync --daemon --verbose --no-detach

第二个说明:我要求使用一个工具来传输存在于两个位置的文件的增量,并且/或者 rsync 是否真的提供了这个。我对 rsync 的经验是它可以完整传输文件(但现在有一个答案可以解释这一点:rsync 需要一个 rsync 服务器才能仅传输增量,否则(例如,使用 ssh-shell)它会传输整个文件文件,但发生了很大变化)。

rsync file-transfer checksum hfs+

8
推荐指数
1
解决办法
8036
查看次数

如何从命令行杀死某个进程的所有子进程?

我运行常规ChromeChrome Canary(从现在开始,使用 Canary)。有时我想杀死Canary的所有子进程Google Chrome Helper。问题是它们与常规Chrome的子进程具有相同的名称,因此会杀死CanaryChrome的子进程。killall "Google Chrome Helper"

如何使用“oneliner”或类似命令杀死 Canary 的所有子进程而不杀死Chrome的同名子进程?

Mac OS X

command-line osx kill process-management

2
推荐指数
1
解决办法
3502
查看次数

grep - 打印 grep 当前正在搜索的文件的文件名

我在获取grep找到匹配项的文件名时没有问题,但是,我正在搜索的文件层次结构中的某些内容需要永远(数小时)来搜索(它是 2000 个文件中的 1.4 GB 数据) SSD 所以它不应该花那么长时间),我想知道什么。因此,我想要某种详细的输出,其中 grep 在处理它们时列出每个文件。

如何才能做到这一点?

在 Mac 上使用 BSD grep。

grep macos

2
推荐指数
1
解决办法
515
查看次数

您如何解释这个复杂的手册页语法?

我正在手册页上阅读此内容:

[-n number-to-stat[:max-size[:min-size][:num-directories[:chunk-size]]]]
Run Code Online (Sandbox Code Playgroud)

我将其解释为-n可选,但如何指定num-directories

最好我不想为number-to-stat, max-size, min-size和输入任何内容chunk-size,只需给出一个值num-directories- 我该如何表达?

man options syntax

1
推荐指数
1
解决办法
195
查看次数