相当新手的举动,但使用 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 文档项目。花时间学习如何处理许多需要脚本的情况,在它们给你带来麻烦之前,你将领先于其他人!