删除临时文件的 Shell 脚本
linux 环境中的临时文件是全局可写和全局可读的,这意味着系统中的任何用户都可以读取和写入临时目录。
在大多数 Linux 系统中,“/tmp”目录被用作临时目录,系统中的任何用户或进程都可以使用该目录来存储任何临时数据。但是任何程序/用户都不应该假设存储在“/tmp”目录中的数据会随着时间的推移而持久化,它应该只用于临时目的。这个shell脚本演示了“/tmp”目录中临时文件的数量和清除“/tmp”目录
方法:
- 我们将计算临时目录(即“/tmp”目录)中存在的临时文件的数量,并在删除临时文件之前和之后向用户显示计数。
- 我们计算没有。 'ls' 命令的文件。 “ls”命令给出目录中存在的所有文件的列表,我们使用“wc”命令来计算“ls”命令打印的行数。
ls /tmp | wc -l - 最后,通过运行“rm”命令完成临时文件的删除,该命令采用参数“-rf”,它告诉“rm”命令递归和强制删除所有文件。
- 我们检查remove命令的返回码来检查命令是否执行成功。在 bash 中可以检查上一个命令的返回码 b “$?”变量,如果此变量的值等于 0,则前一个命令执行成功,否则前一个命令失败并返回其他代码。
- 如果在我们运行 remove 命令时当前正在打开某个文件或某个进程已获取对该文件的锁定,则 remove 命令可能会失败。
代码:
#!/bin/bash
# Script name script.sh
# Script for removing all temporary files from temporary directory
TMP_DIR="/tmp"
echo "Removing all temporary files from $TMP_DIR"
# Counting the number of temporary files
files=`ls -l $TMP_DIR | wc -l`
echo "There are total $files temporary files/directory in $TMP_DIR"
rm -rf $TMP_DIR/*
if [[ "$?" == "0" ]];then
echo "All temporary files successfully deleted"
else
echo "Failed to delete temporary files"
fi
# Counting the number of temporary files
files=`ls -l $TMP_DIR | wc -l`
echo "There are total $files temporary files/directory in $TMP_DIR directory"
输出:
在执行之前分配这些脚本的权限:
chmod +x script.sh