sh -c 'printf "%d " 024'
bash -c 'printf "%d " 024'
zsh -c 'printf "%d" 024'
以上输出20 20 24
。为什么 zsh 不尊重八进制表示法?有没有办法改变这个?
dash 是否有非交互式非登录 rc 文件?我已经阅读了手册页,其中建议.profile
使用登录 shell 和$ENV
交互式 shell 的环境变量。
是否有任何针对非交互式非登录 shell 运行的东西,例如zsh
'zshenv
文件或bash
'$BASH_ENV
环境变量?Bourne shell 也有等效文件吗?
到目前为止,我能想到的最好的方法(尽管根本不理想,因为它需要我编辑每个脚本)是按如下方式编辑 shebang:
#!/bin/sh /path/to/script
f
其中/path/to/script
包含
f() { echo "/path/to/script"; }
我想要的是:
我每天都在尝试将许多文件备份到 S3。我想每天将这些压缩到存档中,这样每个单独的备份就不会花费太多。因此,我想要一个备份系统,以便我可以从前一天创建差异存档以备份到 S3。
我目前的理由是创建一个初始备份,然后每天进行与初始备份不同的基础备份。
例子:
假设我有一个名为dir
包含文件的目录a.txt
:
dir:
a.txt
然后假设我运行rsync -r dir backup.1
. 或其他一些备份程序,例如但不限于rdiff-backup
. 好东西,我有一个备份位于backup.1
.
现在,我添加一个文件,b.txt
,其folder
内容如下:
dir:
a.txt
b.txt
是否有一个rsync
或另一个备份实用程序,我可以运行的命令会给我一个单独的目录,backup.2
只包含文件b.txt
?
如果我修改 的权限a.txt
,该文件是否也会包含在内?
我试过的:
我已经尝试了rsync
and rdiff-backup
,带有一系列标志,但我无法到达任何地方。我已经做了几个小时了,我无法弄清楚。
编辑:
到一半了!
rsync -n -rpgov backup/ backup-copy/
请注意这-n
意味着它会进行试运行,因此您可以愉快地测试它,而不会因文件更改而破坏您自己的本地目录。
这将输出两个本地文件夹之间的差异。但是,我终其一生都无法弄清楚如何通过rsync
's options 将此输出获取到新目录。
我试过使用rsync
's--compare-dest
标志:
rsync -n -rpgov --compare-dest=backup/ backup-copy/
但这似乎将不同的文件输出到上述命令。如何将其推到边缘?