📜  删除临时文件的 Shell 脚本

📅  最后修改于: 2022-05-13 01:57:27.047000             🧑  作者: Mango

删除临时文件的 Shell 脚本

linux 环境中的临时文件是全局可写和全局可读的,这意味着系统中的任何用户都可以读取和写入临时目录。

在大多数 Linux 系统中,“/tmp”目录被用作临时目录,系统中的任何用户或进程都可以使用该目录来存储任何临时数据。但是任何程序/用户都不应该假设存储在“/tmp”目录中的数据会随着时间的推移而持久化,它应该只用于临时目的。这个shell脚本演示了“/tmp”目录中临时文件的数量和清除“/tmp”目录

方法:

  1. 我们将计算临时目录(即“/tmp”目录)中存在的临时文件的数量,并在删除临时文件之前和之后向用户显示计数。
  2. 我们计算没有。 'ls' 命令的文件。 “ls”命令给出目录中存在的所有文件的列表,我们使用“wc”命令来计算“ls”命令打印的行数。
    ls /tmp | wc -l
  3. 最后,通过运行“rm”命令完成临时文件的删除,该命令采用参数“-rf”,它告诉“rm”命令递归和强制删除所有文件。
  4. 我们检查remove命令的返回码来检查命令是否执行成功。在 bash 中可以检查上一个命令的返回码 b “$?”变量,如果此变量的值等于 0,则前一个命令执行成功,否则前一个命令失败并返回其他代码。
  5. 如果在我们运行 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