我试图找到一个命令,该命令将列出包含输入的关键字的文件夹中的所有文件。
我已经尝试过grep -l
,但它不会列出任何内容
答案1
find /path/to/folder -type f -name "*key*"
上面的命令将搜索所有子目录中的文件。要仅搜索当前目录(而不是子目录)中的文件,请使用以下命令:
find /path/to/folder -maxdepth 1 -type f -name "*key*"
以上命令仅特定于 bash shell
答案2
该ls
命令用于列出文件。 shell 为您提供了许多选项来列出与模式匹配的文件,例如:
- 列出所有以“a”开头的文件:
ls a*
- 列出所有以“.txt”结尾的文件:
ls *.txt
- 列出以“x”开头并以“.sh”结尾的所有文件:
ls x*.sh
还有很多更有趣的模式。要了解更多信息,请阅读man bash
.您可以通过按“/”键进行搜索man bash
,然后输入文本“Pattern Matching”并按回车键跳转到相关部分。
答案3
set ./*keyword*
[ -e "$1" ] || shift
printf "${1+%s\n}" "$@"
将打印当前目录中所有文件的列表,其中包含*keyword*
(不以.
)。但更重要的是,它将 shell 的位置数组设置为文件名。因此,如果这些文件存在,则可以在"$1"
等中单独引用它们"$2"
,并且它们的总数在 中"$#"
。