0


【教程】Linux使用git自动备份和使用支持文件恢复的rm命令

转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn]

背景介绍

    首先非常不幸地告诉你:Linux 系统的**标准 
rm

命令不支持文件恢复功能**。一旦使用

rm

删除了文件或目录,它们就会从文件系统中永久删除,除非你使用专门的文件恢复工具尝试恢复这些文件。

    不过,为了提供文件恢复功能,存在一些**替代方案**,其中**
trash-cli

**是一个非常流行的选择,它为命令行环境提供了回收站功能。

    很心疼,我的工程又一次被我误删了。

方案介绍

使用git自动备份

    这个方法大家都知道,每次记得提交一下,如果误删除了可以回退,只是每次要提交很麻烦。

参考的自动提交脚本auto_git.sh

#!/bin/bash

# 指定git仓库的目录
repo_dir="/mnt/disk/test"
# 指定日志文件路径
log_file="/mnt/disk/test/git_backup.log"

# 记录操作开始的时间
echo "Auto Backup Start at $(date)" >> "$log_file"

# 检查是否为git仓库,如果不是则初始化
if [ ! -d "$repo_dir/.git" ]; then
    echo "Initializing git repository in $repo_dir" >> "$log_file"
    git -C "$repo_dir" init >> "$log_file" 2>&1
fi

# 执行git操作
cd "$repo_dir" || exit
git add .
git commit -m "Auto Backup on $(date +'%Y-%m-%d %H:%M:%S')"
# git push origin main >> "$log_file" 2>&1

# 记录操作结束的时间
echo "Backup completed at $(date)" >> "$log_file"

加入crontab:

crontab -e

添加内容:*/10 * * * * /mnt/disk/test/auto_git.sh

备份效果:

使用trash-cli代替rm

   trash-cli

提供了一系列命令行工具,模拟了图形界面下回收站的行为,允许用户将文件“删除”到回收站,从而可以在需要时恢复这些文件。如果你想要一个支持文件恢复的

rm

指令,可以考虑将

trash-cli

集成到你的工作流程中。

安装trash-cli

在Ubuntu系统上,你可以通过以下命令安装

trash-cli

sudo apt update

sudo apt install trash-cli

使用trash-cli的基本命令

官方文档:https://github.com/andreafrancia/trash-cli/blob/master/README_zh-CN.rst

trash-cli 提供以下命令:

trash-put           把文件或目录移动到回收站
trash-empty         清空回收站
trash-list          列出回收站文件
trash-restore       恢复回收站文件
trash-rm            删除回收站文件
  • 删除文件或目录: 使用trash-put命令将文件或目录放入垃圾箱。例如,要删除名为example.txt的文件,你可以使用:trash-put example.txt

  • 列出垃圾箱中的内容: 使用trash-list命令查看垃圾箱中的文件。这将显示垃圾箱中所有文件的列表,包括删除日期。trash-list

  • 恢复垃圾箱中的文件: 使用trash-restore命令从垃圾箱中恢复文件。这个命令会启动一个交互式界面,让你选择要恢复的文件。trash-restore

  • 清空垃圾箱: 使用trash-empty命令清空垃圾箱中的所有内容。你也可以指定保留最近N天内删除的文件不被删除,例如,保留最近7天内删除的文件:trash-empty 7不带参数运行trash-empty将清空垃圾箱中的所有文件。

  • 删除特定文件: 如果你知道要删除的文件的确切名称,可以使用trash-rm命令从垃圾箱中删除特定文件。例如,删除垃圾箱中所有名为example.txt的文件:trash-rm example.txt#### 注意事项

  • 使用trash-cli时,删除的文件会被移动到一个专门的目录(通常是~/.local/share/Trash),而不是被立即从文件系统中永久删除。

  • trash-cli提供了一种安全删除文件的方式,因为你有机会恢复错误删除的文件。

  • 确保定期检查和清理垃圾箱,以避免它占用过多的磁盘空间。

创建别名以替代

rm
    如果你习惯于使用 
rm

命令,并且想要一个不那么永久的删除操作,可以通过在你的 shell 配置文件中(如

.bashrc

.zshrc

)设置别名来实现。通过设置别名,当你输入

rm

时,实际上可以调用

trash-put

    在你的 
.bashrc

.zshrc

文件中添加以下行:

alias rm='trash-put'
    保存文件并重新加载配置(通过执行 
source ~/.bashrc

source ~/.zshrc

),之后,当你在终端中使用

rm

命令时,实际上会使用

trash-put

,这样删除的文件就可以恢复了。

附:使用文件恢复工具

有多种Linux文件恢复工具可用来尝试恢复删除的文件,例如:

  • TestDisk:一个强大的恢复工具,可以恢复丢失的分区和非常有效地恢复删除的文件。
  • PhotoRec:由TestDisk开发者创建,专注于恢复图像、视频、文档等文件类型,从磁盘、相机和内存卡中。
  • extundelete:对于使用Ext3或Ext4文件系统的磁盘,这个工具可以尝试恢复删除的文件。
  • foremost:是一个基于文件头和尾信息恢复文件的工具,可以工作在各种文件系统上。

(基本上用处不大的)

标签: linux 运维 服务器

本文转载自: https://blog.csdn.net/sxf1061700625/article/details/136053696
版权归原作者 小锋学长生活大爆炸 所有, 如有侵权,请联系我们删除。

“【教程】Linux使用git自动备份和使用支持文件恢复的rm命令”的评论:

还没有评论