我在结合使用 ls 和 grep 时遇到了一些麻烦。问题是我必须仅使用 ls 和 grep 来列出主目录中的所有文件。我尝试了多种组合,但都没有效果。我想我应该像这样使用它:
ls /home/mydir | grep stomething
下一个问题是(不知道如何做到这一点)如何使用 ls 和另一个命令来计算主文件夹中的目录数量?
答案1
您对 ls 和 grep 的使用是正确的,它将在 ls 输出中找到包含“stomething”的任何结果。请注意,它查看整行,而不仅仅是文件名(主要适用于使用某些带有 ls 的标志时,例如 ls -l 等)。
查找目录,最好使用 find 和 wc (wordcount):
find /home/mydir -maxdepth 1 -mindepth 1 -type d | wc -l
解释:
- maxdepth 1,计数树中的最大深度为 1(例如,在这种情况下只有目录,而不是子目录)
- mindepth 1,基本上在该示例中用于确保 find 也不会找到“。”。
- 输入 d,查找目录(-type f 将查找文件,l 将查找软链接等)
- wc -l,计算返回的行数
如果您运行该命令时不使用 wc 管道,您将获得所有结果的列表。Find 是一个非常方便的命令,您应该熟悉它。