我正在尝试找到一种方法来扫描整个Linux系统,查找包含特定文本字符串的所有文件.只是为了澄清,我在文件中寻找文本,而不是文件名.
当我查找如何做到这一点时,我遇到了两次这个解决方案:
find / -type f -exec grep -H 'text-to-find-here' {} \;
Run Code Online (Sandbox Code Playgroud)
但是,它不起作用.它似乎显示系统中的每个文件.
这是否接近正确的方法呢?如果没有,我该怎么办?这种在文件中查找文本字符串的能力对于我正在做的一些编程项目非常有用.
在Linux机器上,我想遍历文件夹层次结构并获取其中所有不同文件扩展名的列表.
从shell实现这一目标的最佳方法是什么?
我想找到以.结尾的文件_peaks.bed,但排除tmp和scripts文件夹中的文件.
我的命令是这样的:
find . -type f \( -name "*_peaks.bed" ! -name "*tmp*" ! -name "*scripts*" \)
Run Code Online (Sandbox Code Playgroud)
但它没有用.文件夹tmp和script文件夹仍将显示.
有没有人有这个想法?
我正在尝试创建一个tar文件来部署一些代码,但我不希望部署所有的.svn文件.
我怎样才能过滤掉这些?他们在多个目录中......
使用ack(有时打包为ack-grep)我知道我可以通过执行以下操作找到包含特定字符串的路径:
ack -g somestring
但是,如果我只想要文件名中包含"somestring"的文件呢?
我有一个find命令,我运行以查找名称包含的文件foo.
我想跳过.git目录.下面的命令可以工作,除非它.git在跳过.git目录时打印出令人讨厌的信息:
find . ( -name .git ) -prune -o -name '*foo*'
Run Code Online (Sandbox Code Playgroud)
如何防止跳过的.git目录打印到标准输出?
我正在尝试在LS输出上使用find或grep.
目前,ls -l正在打印大量的信息.但我只希望用户与文件名相关联.文件名可能是greped