Shell

您所在的位置:网站首页 shell脚本获取文件名称 Shell

Shell

2024-05-24 11:43| 来源: 网络整理| 查看: 265

本文总结如何使用 shell 命令获取干净的子文件夹目录或子文件目录 1。

Updated: 2022 / 8 / 22

Shell | 子文件夹 / 文件目录 文件夹ls -d 命令ls -F 命令find -d 命令* 通配符 文件ls -1 命令find -f 命令 参考链接

文件夹 ls -d 命令

在 Linux 中,ls 命令默认会列出所给目录下的所有文件名,包括子目录名。 但如果只想列出当前目录下的一级子目录名,可以使用 ls -d */ 命令,以下面为例: 在这里插入图片描述 可以看到,ls -d */ 命令只列出 TestDir 的一级子目录名,且目录名以 / 结尾。

以此类推,如果想列出当前目录下的二级子目录名,可以使用 ls -d */*/,以下面为例: 在这里插入图片描述

ls -F 命令

ls -F . |grep /$ 可列出当前目录下的文件下面的子目录,以下面为例: 在这里插入图片描述

find -d 命令

使用 find 并指定文件类型进行查找判断,以下面为例: 在这里插入图片描述

* 通配符

查看 man bash 的 Pathname Expansion 小节,对此说明为 If followed by a /, two adjacent *s will match only directories and subdirectories. 即,当星号 * 通配符后面跟着 / 字符时,路径名扩展结果只有目录名和子目录名。

如果只是想获取当前目录下的子目录名,直接为赋值为 */ 即可,不要用引号括起来。

比如,以下面为例: 在这里插入图片描述 可以看到,subdirs=*/ 语句会把 subdirs 变量赋值为当前目录下的子目录名,目录名会以 / 结尾。

当在 shell 脚本中使用时,由于执行 shell 脚本的工作目录可能不固定,也可以通过绝对路径来寻址。

以此类推,如果想列出当前目录下的二级子目录名,可以以下面为例:

文件 ls -1 命令

一般来说,ls 命令会在一行中打印多个文件名。如果想要每行只打印一个文件名,可以使用 -1 选项。注意,这里是数字 1,而不是字母 l。

查看 man ls 对 -1 选项说明为 -1 list one file per line. Avoid 'n' with -q or -b。即,-1 选项会让每行只打印一个文件名,以下面为例: 在这里插入图片描述

find -f 命令

使用 find 并指定文件类型进行查找判断,以下面为例: 在这里插入图片描述

参考链接

Linux技巧:ls命令只列出子目录名和每行打印一个文件名 ↩︎



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3