Linux之rm -rf 安全删除

简介: 新建自定义删除脚本:vim /usr/bin/safe_remove !/bin/bash TRASH_DIR="/tmp/user/${USER}/.trash"mkdir -p $TRASH_DIR RMPATH="" 遍历rm命令参数(e.

参考本人简书

新建自定义删除脚本:

vim /usr/bin/safe_remove
#!/bin/bash

TRASH_DIR="/tmp/user/${USER}/.trash"
mkdir -p $TRASH_DIR

RMPATH=""
# 遍历rm命令参数(e.g. rm -rf时要去掉-rf参数,只需后面的path列表即可)
for arg in "$@"
do
  IS_ARG=$(echo "$arg" | grep "^-")
  if [ -z "$IS_ARG" ]; then
    if [ -n "$RMPATH" ]; then
      RMPATH="${RMPATH} "
    fi
    RMPATH="${RMPATH} $arg"
  fi
done

if [ -n "$RMPATH" ]; then
  FILE_PARENT_DIR=$(pwd $RMPATH)
  SUFFIX=$(echo `date "+%y%m%d%H%M%S"`)

  # 拼接欲删除文件的目录,在回收站中的目录名称(直接将目标文件或目录的父目录作为在回收站的名称,这样做好处是无论删除的是文件或目录都可统一处理)
  FILE_TRASH_DIR="${TRASH_DIR}${FILE_PARENT_DIR}.children.rm.${SUFFIX}.tmp"

  if [ ! -d "$FILE_TRASH_DIR" ]; then
    mkdir -p $FILE_TRASH_DIR
  fi
  mv $RMPATH "${FILE_TRASH_DIR}"
fi

配置安全删除脚本生效

vim /root/.bashrc

新增一行即可:

# .bashrc

# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# 安全rm
alias rm='sh /usr/bin/safe_remove'

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

使其生效

. /root/.bashrc

效果测试

生成测试文件和目录
useradd testing
cd /home/testing
echo 111 > a.txt
echo 222 > b.txt
mkdir -p log
echo 333 > log/test.log
rm删除
rm -rf a.txt b.txt log
查看回收站
ll /tmp/user/root/.trash/home/testing.children.rm.190521102654.tmp/

操作效果:
image.png

FAQ:
1,安全删除测试不成功?
排查是否与本文操作一致,同时查看是否有mv目标文件或目录的linux权限。
2,如何清理回收站?
直接\rm -rf xxx (加个反斜杠)就可以使用linux原生rm命令了。
3,定时清理回收站?
自己建立个crontab任务咯~!

目录
相关文章
|
3月前
|
安全 Linux iOS开发
SonarQube Server 2025 Release 5 (macOS, Linux, Windows) - 代码质量、安全与静态分析工具
SonarQube Server 2025 Release 5 (macOS, Linux, Windows) - 代码质量、安全与静态分析工具
210 0
SonarQube Server 2025 Release 5 (macOS, Linux, Windows) - 代码质量、安全与静态分析工具
|
4月前
|
安全 Linux C++
PVS‑Studio 7.38 for macOS, Linux & Windows - 代码质量安全静态分析
PVS‑Studio 7.38 for macOS, Linux & Windows - 代码质量安全静态分析
200 0
PVS‑Studio 7.38 for macOS, Linux & Windows - 代码质量安全静态分析
|
5月前
|
安全 应用服务中间件 网络安全
在Linux环境部署Flask应用并启用SSL/TLS安全协议
至此,你的Flask应用应该能够通过安全的HTTPS协议提供服务了。记得定期更新SSL证书,Certbot可以帮你自动更新证书。可以设定cronjob以实现这一点。
361 10
|
5月前
|
安全 Linux iOS开发
Burp Suite Professional 2025.7 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
Burp Suite Professional 2025.7 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
534 0
Burp Suite Professional 2025.7 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
|
7月前
|
安全 Linux iOS开发
PVS‑Studio 7.36 for macOS, Linux & Windows - 代码质量安全静态分析
PVS‑Studio 7.36 for macOS, Linux & Windows - 代码质量安全静态分析
156 1
PVS‑Studio 7.36 for macOS, Linux & Windows - 代码质量安全静态分析
|
安全 Linux 数据安全/隐私保护
Vanilla OS:下一代安全 Linux 发行版
【10月更文挑战第30天】
655 0
Vanilla OS:下一代安全 Linux 发行版
|
12月前
|
存储 缓存 监控
Linux缓存管理:如何安全地清理系统缓存
在Linux系统中,内存管理至关重要。本文详细介绍了如何安全地清理系统缓存,特别是通过使用`/proc/sys/vm/drop_caches`接口。内容包括清理缓存的原因、步骤、注意事项和最佳实践,帮助你在必要时优化系统性能。
1162 78
|
10月前
|
人工智能 Linux iOS开发
Burp Suite Professional 2025.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
Burp Suite Professional 2025.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
482 12
Burp Suite Professional 2025.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
|
运维 网络协议 安全
Linux安全运维--一篇文章全部搞懂iptables
Linux安全运维--一篇文章全部搞懂iptables
229 1
|
安全 Linux API
Linux服务器安全
人们常误认为服务器因存于数据中心且数据持续使用而无需加密。然而,当驱动器需维修或处理时,加密显得尤为重要,以防止数据泄露。Linux虽有dm-crypt和LUKS等内置加密技术,但在集中管理、根卷加密及合规性等方面仍存不足。企业应选择具备强大验证、简单加密擦除及集中管理等功能的解决方案,以弥补这些缺口。
183 0