我了解什么是大括号扩展,但我不知道如何最好地使用它。
你什么时候使用它?
如果你有自己的小窍门,请教我一些方便和出色的例子。
我想增加 Fedora 27 中打开文件的最大数量,因为默认设置太低:
$ ulimit -Sn
1024
$ ulimit -Hn
4096
Run Code Online (Sandbox Code Playgroud)
首先,我通过添加以下行来确保系统范围的设置足够高/etc/sysctl.conf
:
fs.inotify.max_user_watches=524288
fs.file-max=100000
Run Code Online (Sandbox Code Playgroud)
然后,我通过将以下行添加到/etc/security/limits.conf
(root
必须单独添加,因为通配符匹配除root之外的所有用户)来设置特定于用户的设置
:
* soft nofile 100000
* hard nofile 100000
root soft nofile 100000
root hard nofile 100000
Run Code Online (Sandbox Code Playgroud)
为确保实际加载上述设置,我添加了以下行/etc/pam.d/login
:
session required pam_limits.so
Run Code Online (Sandbox Code Playgroud)
重新启动计算机并登录后,我仍然得到相同的结果ulimit -Sn
和ulimit -Hn
。仅设置了系统范围的设置:
$ cat /proc/sys/fs/file-max
100000
Run Code Online (Sandbox Code Playgroud)
我有点不知所措……有人知道我如何诊断/解决这个问题吗?
我期待大括号扩展适用于任意数量的参数。但是,对于 n=1,我得到以下信息:
$ find models/nsf-projects-{7}*
models/nsf-projects-{7}.rdf
Run Code Online (Sandbox Code Playgroud)
对于 n>1 扩展按预期发生,例如:
$ find models/nsf-projects-{6,7}*
find: ‘models/nsf-projects-6*’: No such file or directory
find: ‘models/nsf-projects-7*’: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我已经稍微浏览了 GNU 手册,但没有发现在任何地方明确声明 >1 个参数的要求。
问:n>1 确实是大括号扩展的要求吗?如果是这样,它为什么有用?