一尘不染

如何在Linux中遍历目录?

linux

我在Linux上用bash编写脚本,需要遍历给定目录中的所有子目录名称。如何遍历这些目录(并跳过常规文件)?

例如:
给定目录是/tmp/
它具有以下子目录:/tmp/A, /tmp/B, /tmp/C

我想检索A,B,C。


阅读 289

收藏
2020-06-02

共1个答案

一尘不染

cd /tmp
find . -maxdepth 1 -mindepth 1 -type d -printf '%f\n'

简短说明:

  • find 查找文件(很明显)

  • .是当前目录,它位于cdis之后/tmp(恕我直言,它比/tmp直接包含在find命令中更为灵活。cd如果要在此文件夹中执行更多操作,则只有一个位置可以更改,)。

  • -maxdepth 1-mindepth 1确保find仅在当前目录中查找,并且不将.自身包含在结果中

  • -type d 只查找目录

  • -printf '%f\n 对于每次匹配,仅打印找到的文件夹名称(加上换行符)。

等等!

2020-06-02