用shell写一个查找目录下所有文件名中包含“dev”的目录的代码
时间: 2024-03-07 15:48:24 浏览: 21
可以使用以下命令来查找目录下所有文件名中包含“dev”的目录:
```bash
find /path/to/directory -type d -name "*dev*"
```
其中,`/path/to/directory` 是你要查找的目录路径,`-type d` 表示查找的是目录,`-name "*dev*"` 表示文件名包含“dev”。
相关问题
在/dev下查找所有以“cu”开头的文件,在当前目录下查找文件名包含字符d"Name"的文件
在/dev下查找所有以“cu”开头的文件,可以使用以下命令:
```bash
find /dev -name "cu*"
```
解释一下上述命令:
- `find` 命令用于在指定目录中查找文件。
- `/dev` 是指查找的目录,即在 `/dev` 目录下查找。
- `-name "cu*"` 表示查找文件名以 `cu` 开头的文件。`*` 表示通配符,表示后面可以是任意字符。
在当前目录下查找文件名包含字符 `d` 的文件,可以使用以下命令:
```bash
find . -name "*d*Name*"
```
解释一下上述命令:
- `.` 表示当前目录,即在当前目录下查找。
- `-name "*d*Name*"` 表示查找文件名包含字符 `d` 和 `Name` 的文件。`*` 表示通配符,表示前面和后面可以是任意字符,这里用 `*` 包含 `d` 和 `Name`,表示中间可以是任意字符。
注意:上述命令中的通配符 `*` 必须用双引号 `"` 包含起来,以防止 shell 对其进行解析。
用shell写一个指定目录下是否存在.doc文件,如果存在则输出它们的名称
可以使用以下的shell脚本来实现:
```shell
#!/bin/bash
# 指定目录
dir_path="/path/to/directory"
# 查找.doc文件并输出名称
find "$dir_path" -name "*.doc" -type f -print 2>/dev/null | while read file_name
do
echo "$file_name"
done
```
解释一下这个脚本的每一行:
- 第1行:指定使用/bin/bash解释器执行此脚本。
- 第4行:指定要查找.doc文件的目录路径。
- 第7-10行:使用find命令查找指定目录下所有扩展名为.doc的文件,并输出它们的名称。
- 第8行:-name用于指定要查找的文件名,这里使用通配符*.doc表示查找所有扩展名为.doc的文件。
- 第9行:-type f表示查找普通文件而非目录或链接文件。
- 第10行:-print用于输出查找到的文件名,2>/dev/null用于将标准错误输出重定向到/dev/null,这样即使找不到文件也不会输出错误信息。
- 第11-14行:使用while循环读取find命令输出的每一个文件名,并输出它们的名称。