这个:
$ 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)
这是在某处记录的吗?该猛砸参考并没有提到它(即使它有使用它的例子)。
标题中的问题... 最近对应用程序的 flatpak 更新引入了新的错误,这些错误比已修复的错误更令人讨厌。
我没有看到任何看起来像flatpak rollback命令的东西,但是否有相当安全的手动程序?
我服务器上的 fail2ban 数据库非常大(420MB)。
fail2ban 日志非常繁忙(每两秒有一个“过滤器”条目)但iptables只显示了几个被禁止的地址。
dbpurgeage 为 86400 秒(24 小时)
这个大小与活动一致还是有什么事情发生?
我假设如果我停止/擦除数据库/启动我会恢复到合理的大小,但这不会使主动禁令永久化吗?
# 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) 打印换行、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)中有一个错误,但很难决定:
那么, 的真正预期行为是xargs什么?
我可以使用${variable##pattern}(前导)或${variable%%pattern}(尾随)删除 bash 变量中的模式。
但是我找不到一种只使用 bash 的方法来保留模式并丢弃其余的。
我知道有使用sed,awk或 的解决方案grep,但我想知道是否有我忽略的合理有效的仅 bash 解决方案?
PS:这不仅仅是一个闲置的问题。最初的问题是我想处理名称包含模式(技术上,'[A-Z]+([A-Z])-[0-9][0-9]+([0-9])'大写字母后跟破折号和数字)的文件,我想使用相同的模式列出文件并提取匹配的字符串以进行进一步处理。
在一种stat格式(至少是我从 Linux 上的 bash 获得的格式)中,可以使用格式修饰符:例如,%010s将强制大小字段至少为 10 个字符,并在左侧填充零(顺便说一句,这是否记录在某处?)
是否有等效的技巧来限制字段的长度?我想在 %xyz 格式中删除秒的小数部分。或者我是否必须使用 sed/awk 对输出进行后处理?
我有这个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=auto到ls命令中(因为输出是通过管道传输的,所以它没有用)。是的,在我的外壳ls上别名为ls --color=auto,如果我删除别名,这不会发生。但是我认为在函数中没有使用别名,无论如何这种替换发生在函数定义时?