shell 编写一个循环来删除当前目录中包含单词 log 的所有文件
封面图
•
2025-11-10
•
Linux
211
0
0
0
你可以使用 `bash` shell 编写一个简单的循环来删除当前目录中包含单词 `log` 的所有文件。下面是一个示例脚本: ```bash #!/bin/bash # 遍历当前目录中的所有文件 for file in *; do # 检查文件名是否包含 "log" if [[ "$file" == *"log"* ]]; then # 删除该文件 rm -i "$file" fi done ``` ### 说明: - `for file in *; do ... done`:遍历当前目录下的所有文件和目录。 - `[[ "$file" == *"log"* ]]`:检查文件名是否包含字符串 `log`。 - `rm -i "$file"`:使用 `-i` 选项会在删除前提示确认,避免误删。 > ⚠️ 注意:这个脚本会删除当前目录下所有文件名中包含 `log` 的文件,包括像 `errorlog.txt`、`logfile`、`log123` 等。如果你只想删除特定类型的文件(如 `.log` 文件),可以修改判断条件为 `[[ "$file" == *.log ]]`。 --- ### 如果你只想删除 `.log` 文件(以 `.log` 结尾): ```bash #!/bin/bash for file in *.log; do rm -i "$file" done ``` --- ### 如果你希望递归删除子目录中的文件(包含 `log` 的文件): ```bash #!/bin/bash find . -type f -name "*log*" -exec rm -i {} \; ``` 这会搜索当前目录及其子目录中所有文件名包含 `log` 的文件,并逐个删除。 --- 请根据你的需求选择合适的脚本,并在运行前确保你了解其影响。
上一篇:
Linux的文件类型都有哪些? Linux面试题
下一篇:
有哪些不同的RAID级别?
标题录入,一次不能超过6条
留言
评论