小编xen*_*oid的帖子

Bash 中的嵌套括号扩展之谜

这个:

$ echo {{a..c},{1..3}}
Run Code Online (Sandbox Code Playgroud)

产生这个:

a b c 1 2 3
Run Code Online (Sandbox Code Playgroud)

这很好,但很难解释

$ echo {a..c},{1..3}
Run Code Online (Sandbox Code Playgroud)

a,1 a,2 a,3 b,1 b,2 b,3 c,1 c,2 c,3
Run Code Online (Sandbox Code Playgroud)

这是在某处记录的吗?该猛砸参考并没有提到它(即使它有使用它的例子)。

bash brace-expansion

20
推荐指数
2
解决办法
3094
查看次数

是否可以回滚 flatpak 更新?

标题中的问题... 最近对应用程序的 flatpak 更新引入了新的错误,这些错误比已修复的错误更令人讨厌。

我没有看到任何看起来像flatpak rollback命令的东西,但是否有相当安全的手动程序?

flatpak

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

大型fail2ban数据库,正常吗?

我服务器上的 fail2ban 数据库非常大(420MB)。

fail2ban 日志非常繁忙(每两秒有一个“过滤器”条目)但iptables只显示了几个被禁止的地址。

dbpurgeage 为 86400 秒(24 小时)

这个大小与活动一致还是有什么事情发生?

我假设如果我停止/擦除数据库/启动我会恢复到合理的大小,但这不会使主动禁令永久化吗?

fail2ban

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

是否有 CLI 实用程序可以计算 ZIP 文件中使用的相同 CRC?

# Create random file    
$ dd if=/dev/urandom /of=./test.dat bs=1K count=1

# Zip it 
$ zip test.zip test.dat

# Dump contents for ZIP-computed CRC
$ unzip -v test.zip
Archive:  test.zip
Length   Method    Size  Cmpr    Date    Time   CRC-32   Name
--------  ------  ------- ---- ---------- ----- --------  ----
    1024  Stored     1024   0% 2018-12-09 17:42 1f197320  test.dat
--------          -------  ---                            -------
    1024             1024   0%                            1 file

# compute CRC with coreutil's cksum
$ cksum test.dat
283837118 1024 test.dat

# convert to hex
$ printf …
Run Code Online (Sandbox Code Playgroud)

zip checksum

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

为什么在 GNU xargs 中与 `-0` 一起使用时 `-r` 似乎被忽略了?

打印换行、xargs调用printf和某些内容的常规情况:

>>printf "foo\n" | xargs -r printf "->%s\n"
->foo
>>
Run Code Online (Sandbox Code Playgroud)

随着空输入代替,-r使得xargs不是在所有调用命令:

>>printf "\n" | xargs -r printf "->%s\n"
>>
Run Code Online (Sandbox Code Playgroud)

使用空值而不是换行符,如果有以下输入,一切都是一样的xargs

>>printf "foo\0" | xargs -r -0 printf "->%s\n"
->foo
>>
Run Code Online (Sandbox Code Playgroud)

但是如果没有输入,无论如何都会打印一些东西:

>>printf "\0" | xargs -r -0 printf "->%s\n"
->
>>
Run Code Online (Sandbox Code Playgroud)

所以,要么

  • 我错过了一些东西(什么?)

  • -r当与-0(但哪个)一起使用时,有一些很好的理由可以忽略?

  • 我的xargs(findutils 4.6.0.225-235f)中有一个错误,但很难决定:

    • 我在另外两个实例(Ubuntu 16.04 上的 4.7.0-git 和 Windows 上的另一个 4.6.0)中发现了相同的行为,
    • 我不敢相信这种事情会通过回归测试。
    • 另一方面,这个问题暗示它在过去可能有效

那么, 的真正预期行为是xargs什么?

gnu xargs

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

在 shell 参数扩展中保持匹配模式

我可以使用${variable##pattern}(前导)或${variable%%pattern}(尾随)删除 bash 变量中的模式。

但是我找不到一种只使用 bash 的方法来保留模式并丢弃其余的。

我知道有使用sed,awk或 的解决方案grep,但我想知道是否有我忽略的合理有效的仅 bash 解决方案?

PS:这不仅仅是一个闲置的问题。最初的问题是我想处理名称包含模式(技术上,'[A-Z]+([A-Z])-[0-9][0-9]+([0-9])'大写字母后跟破折号和数字)的文件,我想使用相同的模式列出文件并提取匹配的字符串以进行进一步处理。

bash variable-substitution

4
推荐指数
2
解决办法
156
查看次数

`stat` 输出格式:截断日期字段

在一种stat格式(至少是我从 Linux 上的 bash 获得的格式)中,可以使用格式修饰符:例如,%010s将强制大小字段至少为 10 个字符,并在左侧填充零(顺便说一句,这是否记录在某处?)

是否有等效的技巧来限制字段的长度?我想在 %xyz 格式中删除秒的小数部分。或者我是否必须使用 sed/awk 对输出进行后处理?

bash coreutils

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

为什么 Bash 会在函数中使用的 `ls` 命令中自动插入 `--color=auto`

我有这个setup文件:

function latest { 
    count=${1:-5} ; 
    echo "Just changed"
    ls -lrtd * | tail -$count ; 
}
Run Code Online (Sandbox Code Playgroud)

我称之为:

. setup
Run Code Online (Sandbox Code Playgroud)

然后我问 bash 是否latest定义了函数:

>type latest
latest is a function
latest () 
{ 
    count=${1:-5};
    echo "Just changed";
    ls --color=auto -lrtd * | tail -$count
}
Run Code Online (Sandbox Code Playgroud)

Just changed是一个任意字符串,我用来确保我没有查看latest来自另一个文件的定义。

问题是:为什么 Bash 将添加--color=autols命令中(因为输出是通过管道传输的,所以它没有用)。是的,在我的外壳ls上别名为ls --color=auto,如果我删除别名,这不会发生。但是我认为在函数中没有使用别名,无论如何这种替换发生在函数定义时?

bash alias bash-functions

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