小编Nic*_*ull的帖子

SIGINT 未在“${FUNCNAME[@]}”中清除

执行以下脚本,被键盘输入Ctrl+打断,C如图所示:

$ function a() { echo "Performing"; sleep 10; echo "Performed"; }
$ a
Performing
^C
$ echo "${FUNCNAME[@]}"
a source
Run Code Online (Sandbox Code Playgroud)

如果我们多次重复SIGINTduring 函数a,我们最终会得到这样的场景:

...

$ a
Performing
^C
$ a
Performing
^C
$ echo "${FUNCNAME[@]}"
a a a a a a a a a source
Run Code Online (Sandbox Code Playgroud)

为了演示这个问题,让我们有另一个函数,b,它给出了一个message_error函数,也定义如下:

$ function message_error() {
>   local MESSAGE="$1"
>
>   # FUNCNAME[1], as [0] is `message_error`, gets the calling function
>   echo "[[ …
Run Code Online (Sandbox Code Playgroud)

bash signals function

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

Rsync 创建差异目录

我想要的是:

我每天都在尝试将许多文件备份到 S3。我想每天将它们压缩到档案中,这样每个单独的备份就不会花费太多。因此,我想要一个备份系统,通过它我可以从前一天创建差异存档以备份到 S3。

我目前的理由是创建一个初始备份,然后每天创建与初始备份不同的基础备份。


例子:

假设我有一个名为的目录,dir其中包含一个文件a.txt

dir:
  a.txt
Run Code Online (Sandbox Code Playgroud)

然后假设我运行rsync -r dir backup.1,或其他一些备份程序,例如但不限于rdiff-backup. 很棒的东西,我有一个位于backup.1.

现在,我添加一个文件,b.txt,因此其folder内容如下:

dir:
  a.txt
  b.txt
Run Code Online (Sandbox Code Playgroud)

是否有一个rsync或其他备份实用程序,我可以运行,它会给我一个单独的目录,backup.2只包含文件b.txt

如果我修改了 的权限a.txt,该文件是否也会被包含在内?

我试过的

我试过rsyncand rdiff-backup,带有一系列标志,但我无法到达任何地方。我已经做了几个小时了,我无法弄清楚。


编辑:

半途而废!

rsync -n -rpgov backup/ backup-copy/
Run Code Online (Sandbox Code Playgroud)

请注意这-n意味着这是一个试运行,因此您可以愉快地测试它,而不会因文件更改而破坏您自己的本地目录。

这将输出两个本地文件夹之间的差异。但是,我一生都无法弄清楚如何通过rsync的选项发送到新目录。

我试过使用rsync's--compare-dest标志:

rsync -n -rpgov --compare-dest=backup/ backup-copy/
Run Code Online (Sandbox Code Playgroud)

但这似乎向上述命令输出了不同的文件。如何将其推到边缘?

backup rsync

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

shell 数学是否在子 shell 中运行?

当我在 中执行一个简单的数学运算时#!/bin/sh,是否会创建一个子shell?

例如,

addition=$(( 1 + 1 ))
Run Code Online (Sandbox Code Playgroud)

语法会建议一个子shell,但我在这上面找不到任何东西

shell subshell math

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

为什么 zsh printf 不遵循八进制表示法?

sh -c 'printf "%d " 024'
bash -c 'printf "%d " 024'
zsh -c 'printf "%d" 024'
Run Code Online (Sandbox Code Playgroud)

以上输出20 20 24。为什么 zsh 不尊重八进制表示法?有办法改变这个吗?

zsh printf

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

标签 统计

backup ×1

bash ×1

function ×1

math ×1

printf ×1

rsync ×1

shell ×1

signals ×1

subshell ×1

zsh ×1