![使用了错误顺序的 tar 并覆盖了原始文件。有什么方法可以恢复吗?](https://linux22.com/image/1315921/%E4%BD%BF%E7%94%A8%E4%BA%86%E9%94%99%E8%AF%AF%E9%A1%BA%E5%BA%8F%E7%9A%84%20tar%20%E5%B9%B6%E8%A6%86%E7%9B%96%E4%BA%86%E5%8E%9F%E5%A7%8B%E6%96%87%E4%BB%B6%E3%80%82%E6%9C%89%E4%BB%80%E4%B9%88%E6%96%B9%E6%B3%95%E5%8F%AF%E4%BB%A5%E6%81%A2%E5%A4%8D%E5%90%97%EF%BC%9F.png)
相当新手的举动,但使用 tar 时将源文件和目标文件参数交换,结果却一团糟(源文件已被另一个大小为 4kb 的同名文件覆盖)。
有什么方法可以恢复我的原始文件吗?
顺便说一句,我很惊讶默认设置是覆盖,但我想我不应该在早上喝咖啡之前做这样的事情。呃。
答案1
除非您在其他地方存储了原始源文件的备份,否则您很不幸地没有运气。Tar 无法从这种特定的错误情况中恢复。
答案2
也许这会是一个编写脚本的灵感时刻。将命令重命名tar
为tar.orig
,并将新脚本命名为my-tar.sh
。让您的新my-tar.sh
脚本:
- 对哪个是输入、哪个是输出进行健全性检查(检查 .ext?文件大小?日期时间戳?),然后
cp input.bkp
在进行任何处理之前创建输入文件的备份( )。
您还可以包含一小段菜单,配置为轻松在您最喜欢的 tar 命令选项集之间进行选择!
如果您觉得自己真的很强大,您还可以让脚本轮换最近每次“运行”的几个备份文件(使用/tmp
目录;.bkp、.bk4、.bk3、.bk2、.bk1),以防您在喝第一杯咖啡之前遇到键盘狂潮!也许还可以轮换一个小日志文件,以/var/log/my-tar.log
跟踪日期和时间戳以及自定义脚本最近几次“运行”期间执行的确切脚本处理命令行!
如需编写mytar.sh
脚本方面的帮助,请咬紧牙关,走教育路线:获取在线 PDF“高级 Bash 脚本指南”摘自 Linux 文档项目。花时间学习如何处理许多需要脚本的情况,在它们给你带来麻烦之前,你将领先于其他人!