轉(zhuǎn)載請注明出處:小鋒學(xué)長生活大爆炸[xfxuezhang.cn]
背景介紹
????????首先非常不幸地告訴你:Linux 系統(tǒng)的標(biāo)準 rm
命令不支持文件恢復(fù)功能。一旦使用 rm
刪除了文件或目錄,它們就會從文件系統(tǒng)中永久刪除,除非你使用專門的文件恢復(fù)工具嘗試恢復(fù)這些文件。
????????不過,為了提供文件恢復(fù)功能,存在一些替代方案,其中 trash-cli
是一個非常流行的選擇,它為命令行環(huán)境提供了回收站功能。
? ? ? ? 很心疼,我的工程又一次被我誤刪了。
方案介紹
使用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
# 執(zhí)行g(shù)it操作
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
# 記錄操作結(jié)束的時間
echo "Backup completed at $(date)" >> "$log_file"
加入crontab:
crontab -e
添加內(nèi)容:*/10 * * * * /mnt/disk/test/auto_git.sh
備份效果:
使用trash-cli代替rm
? ?trash-cli
提供了一系列命令行工具,模擬了圖形界面下回收站的行為,允許用戶將文件“刪除”到回收站,從而可以在需要時恢復(fù)這些文件。如果你想要一個支持文件恢復(fù)的 rm
指令,可以考慮將 trash-cli
集成到你的工作流程中。
安裝trash-cli
在Ubuntu系統(tǒng)上,你可以通過以下命令安裝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 恢復(fù)回收站文件
trash-rm 刪除回收站文件
-
刪除文件或目錄: 使用
trash-put
命令將文件或目錄放入垃圾箱。例如,要刪除名為example.txt
的文件,你可以使用:trash-put example.txt
-
列出垃圾箱中的內(nèi)容: 使用
trash-list
命令查看垃圾箱中的文件。這將顯示垃圾箱中所有文件的列表,包括刪除日期。trash-list
-
恢復(fù)垃圾箱中的文件: 使用
trash-restore
命令從垃圾箱中恢復(fù)文件。這個命令會啟動一個交互式界面,讓你選擇要恢復(fù)的文件。trash-restore
-
清空垃圾箱: 使用
trash-empty
命令清空垃圾箱中的所有內(nèi)容。你也可以指定保留最近N天內(nèi)刪除的文件不被刪除,例如,保留最近7天內(nèi)刪除的文件:trash-empty 7
不帶參數(shù)運行
trash-empty
將清空垃圾箱中的所有文件。 -
刪除特定文件: 如果你知道要刪除的文件的確切名稱,可以使用
trash-rm
命令從垃圾箱中刪除特定文件。例如,刪除垃圾箱中所有名為example.txt
的文件:trash-rm example.txt
注意事項
- 使用
trash-cli
時,刪除的文件會被移動到一個專門的目錄(通常是~/.local/share/Trash
),而不是被立即從文件系統(tǒng)中永久刪除。 -
trash-cli
提供了一種安全刪除文件的方式,因為你有機會恢復(fù)錯誤刪除的文件。 - 確保定期檢查和清理垃圾箱,以避免它占用過多的磁盤空間。
創(chuàng)建別名以替代 rm
????????如果你習(xí)慣于使用 rm
命令,并且想要一個不那么永久的刪除操作,可以通過在你的 shell 配置文件中(如 .bashrc
或 .zshrc
)設(shè)置別名來實現(xiàn)。通過設(shè)置別名,當(dāng)你輸入 rm
時,實際上可以調(diào)用 trash-put
。
????????在你的 .bashrc
或 .zshrc
文件中添加以下行:
alias rm='trash-put'
????????保存文件并重新加載配置(通過執(zhí)行 source ~/.bashrc
或 source ~/.zshrc
),之后,當(dāng)你在終端中使用 rm
命令時,實際上會使用 trash-put
,這樣刪除的文件就可以恢復(fù)了。
附:使用文件恢復(fù)工具
有多種Linux文件恢復(fù)工具可用來嘗試恢復(fù)刪除的文件,例如:文章來源:http://www.zghlxwxcb.cn/news/detail-831770.html
- TestDisk:一個強大的恢復(fù)工具,可以恢復(fù)丟失的分區(qū)和非常有效地恢復(fù)刪除的文件。
- PhotoRec:由TestDisk開發(fā)者創(chuàng)建,專注于恢復(fù)圖像、視頻、文檔等文件類型,從磁盤、相機和內(nèi)存卡中。
- extundelete:對于使用Ext3或Ext4文件系統(tǒng)的磁盤,這個工具可以嘗試恢復(fù)刪除的文件。
- foremost:是一個基于文件頭和尾信息恢復(fù)文件的工具,可以工作在各種文件系統(tǒng)上。
(基本上用處不大的)文章來源地址http://www.zghlxwxcb.cn/news/detail-831770.html
到了這里,關(guān)于【教程】Linux使用git自動備份和使用支持文件恢復(fù)的rm命令的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!