linux 打印所有文件的路径
在日常系统维护中,经常会用到配置相关文件的绝对路径,比如 cfg_file=/XXX/XXX/XXX.cfg
之类的,当在同一个文件夹中有多个配置需要引用时,往往会感到崩溃。其实只需要一条命令即可让 linux 在终端打印出当前目录下所有文件的路径,我们只需复制粘贴即可。
find pwd
-type f -exec echo "{}" \;
来看看效果:
find pwd
-type f -exec echo "{}" \;|grep cfg|sort
########输出结果########
/home/hzz/conf/conf1/11.cfg
/home/hzz/conf/conf1/22.cfg
/home/hzz/conf/conf1/33.cfg
/home/hzz/conf/conf2/11.cfg
/home/hzz/conf/conf2/22.cfg
/home/hzz/conf/conf2/33.cfg
/home/hzz/conf/conf3/11.cfg
/home/hzz/conf/conf3/22.cfg
/home/hzz/conf/conf3/33.cfg
########输出结果########
实际使用:
在nagios的监控配置中,当被监控主机众多而主机以及服务又需要分类的时候,在配置 nagios.cfg
引用时,我们往往会面临如下图的情况:

也许有人会说,干嘛不用 cfg_dir
来配置呢,这确实是一种办法,但是如果那样的话,目录中就不能存在杂七杂八的文件。在日常维护中,很多人都是通过修改后缀名来备份文件,并没有转移文件进行备份的习惯。在多人对 nagios 的维护过程中,很容易造成配置无效导致 nagios 无法启动的情况。而且如果需要临时屏蔽某个配置,修改 nagios.cfg
进行屏蔽比转移文件进行屏蔽安全快捷得多。
好了,面对海量需要引用的配置文件,我们如何对 nagios.cfg
进行快速配置呢?
进入 object
目录,执行以下命令:
find pwd
-type f -exec echo "cfg_file={}" \;|grep cfg|grep -v bak|sort
如图,命令的输出结果是不是很熟悉呢,直接复制粘贴进 nagios.cfg
,就可以批量引用了。当然了,也可以自定义筛选条件,输出自己想要的配置文件路径。