在终端中我执行以下命令:
ls --all --recursive -1 *.htm*
或这个:
ls -a -R -1 *.htm*
但它只列出了当前目录中的 html 文件...?!
根据“man ls”,该选项具有此功能:
-R, --recursive
list subdirectories recursively
我从 Krusader Search 中得知子文件夹中大约有 40 个 html 文件...但是为什么“ls”没有列出它们?
我想补充一点,我刚刚发现以下命令可以完成这项工作:
find . -name '*.htm*'
答案1
它的工作方式与你预期的略有不同。ls
将列出你在命令行上指定的文件和目录。使用-R
或--recursive
选项,它将进入命令行上指定的任何目录。
当前目录中没有匹配的目录*.htm*
,只有文件。因此,仅列出匹配的文件。
find
可能是最适合递归查找文件的工具,但也可以使用和来ls -R
完成grep
:
ls -R | grep -E '\.htm.*$'
grep
这里使用正则表达式。