如果我进入正确的目录,我可以做我需要做的问题,但我们的教授希望我们能够从任何地方做到这一点。
我可以ls | grep *pattern*
,它可以从我所在的目录中运行,但如何通过指定路径在任何地方进行操作?
答案 0 :(得分:3)
ls /path/to/directory | grep *pattern*
应该有用。
答案 1 :(得分:2)
如果您在目录中搜索特定文件,那么我建议使用find
命令。 grep
通常用于搜索文件中的内容,并列出文件名的内容。
要从任何地方搜索任何类型的文件 -
find /path/to/search -type f
如果该目录有子目录,这将递归列出所有文件。您可以使用-depth
选项控制它。您还可以使用-name
或-regex
选项查找特定文件。 find
的手册页包含示例中的所有信息。
我的最后一个问题是我如何实现“其名称不以小写或大写英文字母开头
ls -1 | grep "^[^a-zA-Z].*"
^和$:这些锚点指向字符串的(^)开头和结尾($)。
[^ ..]: 当^在字符类中时,它会否定字符类的内容。
答案 2 :(得分:1)
你也可以使用find
吗?
find | grep "pattern"
它应该工作!或者,如果您要查看目录名称中的模式,则应该执行
ls -R | grep "pattern"
以递归方式搜索到您的目录树。
就是这样。