Linux遍览目录删除文件写个shell
时间: 2024-08-16 21:06:34 浏览: 34
当然可以。在Linux中,你可以使用`find`命令配合`rm`命令来遍历指定目录并删除其中的文件。下面是一个简单的shell脚本示例:
```bash
#!/bin/bash
# 指定需要遍历的目录
directory="/path/to/directory" # 请将"/path/to/directory"替换为你实际的目标路径
# 使用find查找该目录下的所有非隐藏文件,并递归删除
find "$directory" -type f ! -name ".*" -delete
# 或者如果你想通过用户确认后再删除,可以加上交互模式
# find "$directory" -type f ! -name ".*" -print0 | xargs -0 rm -f
echo "已开始删除$directory中的文件..."
sleep 1 # 加上这行是为了演示,实际上删除操作会立即执行
echo "删除完成."
#
相关问题
shell脚本linux目录满了,自动删除文件
可以编写shell脚本来实现Linux目录满了自动删除文件的功能。以下是一个简单的示例脚本:
```
#!/bin/bash
DIR="/var/log" # 要清理的目录
THRESHOLD=90 # 磁盘使用率的阈值
# 获取磁盘使用率
USAGE=$(df -h | grep "$DIR" | awk '{print $5}')
USAGE=${USAGE%\%}
# 如果磁盘使用率超过阈值,则删除一周前的日志文件
if [ $USAGE -ge $THRESHOLD ]; then
find $DIR -type f -mtime +7 -name "*.log" -delete
fi
```
该脚本首先定义了要清理的目录和磁盘使用率的阈值,然后使用`df`命令获取磁盘使用率,并删除一周前的日志文件,如果磁盘使用率超过了阈值。
可以将该脚本保存为一个.sh文件,并使用cron定时任务工具来定期执行该脚本。例如,可以使用以下命令将该脚本添加到每周日的cron定时任务中:
```
sudo crontab -e # 进入cron配置页面
```
在打开的页面中添加以下命令:
```
0 0 * * 0 /path/to/script.sh
```
这条命令的含义是,在每周日的0点0分执行一次脚本,自动清理/var/log目录下一周前的所有日志文件。
Linux 下shell 遍历目录下所有文件
在Linux Shell中,使用`find`命令可以遍历目录下的所有文件,使用方法如下:
```bash
find /path/to/directory -type f
```
其中,`/path/to/directory`是要遍历的目录路径,`-type f`表示要查找的是普通文件。
如果要输出找到的文件名,可以在命令后面加上`-print`选项,即:
```bash
find /path/to/directory -type f -print
```
如果要进一步操作找到的文件,可以使用`-exec`选项,例如:
```bash
find /path/to/directory -type f -name "*.txt" -exec rm {} \;
```
上述命令将删除`/path/to/directory`目录下所有扩展名为`.txt`的文件。其中,`{}`表示找到的文件名,`\;`表示命令结束符。
需要注意的是,`find`命令会遍历目录下的所有文件和子目录中的文件,如果要遍历指定目录下的文件,可以使用`-maxdepth`选项限制遍历深度,例如:
```bash
find /path/to/directory -maxdepth 1 -type f -print
```
上述命令将只遍历`/path/to/directory`目录下的文件,不会遍历子目录中的文件。