我正在使用ack.pl工具来搜索文件中的字符串或IP
ack.pl的官方网站是 - http://beyondgrep.com/documentation/
ack.pl CLI示例(希望在/ etc下的文件中找到字符串STRING_TO_FIND)
/tmp/ack.pl -Q -a -l --max-count=1 STRING_TO_FIND /etc
但有时候ack.pl被困在文件上:
---S--l--- 1 root root 0 Mar 10 04:25 /opt/POP_lock
来自MAN paget“S”attr表示:
使用大写“S”而不是小写“s”告诉文件系统立即将文件写入磁盘,而不是将其存储在缓冲区中。 (另请注意,这次我们保留了“s”属性,因此我们现在为此文件设置了两个属性。)
所以我的问题是:
ack.pl如何忽略带有“S”的文件, 或者什么ack.pl标志shuld用“S”忽略这个文件?
答案 0 :(得分:2)
ack
(更多官方和最新版本here)不会检查文件权限,也无法对其进行过滤。那么find+ack
或find+grep
成语呢?
find /etc -not -perm /o+S -type f -exec grep -l STRING_TO_FIND {} \;
(未经测试)