如何修改find命令实现/bin下b开头符号链接计数输出单个数字
问题原因分析
你原来的命令输出的1111实际是4个小写字母l,只是终端字体显示和数字1接近导致混淆:-printf l参数的作用是每匹配到一个符合条件的文件,就输出一个字符l,你有4个匹配结果自然就输出了4个连续的l。
调整方案
下面给出几种常用的可行命令,你可以根据需求选择:
方案1(最稳妥,不受特殊文件名影响)
直接统计匹配结果的数量,无需输出额外内容:find /bin -name "b*" -type l -printf '.' | wc -c逻辑是每个匹配项输出1个占位字符,用
wc -c统计字符总数,直接输出总数量。方案2(需要同时保存匹配到的文件路径到list.txt)
find /bin -name "b*" -type l -print | tee list.txt | wc -l逻辑是把每个匹配的文件路径输出,通过
tee命令存到list.txt的同时,用wc -l统计行数得到总数量,/bin目录下无特殊换行文件名的场景下完全可用。方案3(用awk直接统计)
find /bin -name "b*" -type l | awk 'END{print NR}'逻辑是awk处理完所有行后输出总行数,和
wc -l效果一致。
内容的提问来源于stack exchange,提问作者manjitolo
相关产品推荐
相关产品推荐

