我意外地覆盖了一个 Linux Shell 程序,想修复它

我意外地覆盖了一个 Linux Shell 程序,想修复它

我意外地覆盖了 /bin 目录中的某个程序,想修复它。我正在使用 Ubuntu 11.10,想以某种方式重新安装此文件,而不必重新安装整个发行版。

具体来说,我无意中输入了以下命令:

ls > less

我原本想将 ls 的输出通过管道传输到 less 程序中以便于查看,如下所示:

ls | less

该命令之所以有效,是因为我(真惭愧)以超级用户身份登录。我打开了 /bin 目录中的 less 文件,果然它现在是一个包含我的 ls 命令输出的文本文件。有没有办法解决这个问题?这特别烦人,因为我无法查看任何命令的手册页。谢谢你的帮助,我刚刚开始学习 Linux。

答案1

以下操作适用于 Debian 和 Ubuntu:

sudo apt-get install --reinstall $(dpkg -S /usr/bin/less | cut -d: -f 1)

答案2

解决此问题的一个更根本的方法是使用 rsync 之类的工具将系统备份到另一个驱动器。这样您就可以恢复任何有问题的文件。无论如何,您都需要这样做来保护您的数据文件。

Linux 有各种各样的备份系统,但只需一个简单的 rsync 就可以满足您的需求。如果可能的话,所有内容的一份副本应放在外部驱动器上 - 最好存储在远程位置,这样它就不会受到计算机所在位置的物理影响。

说到这个话题,请查看 most。它的功能与 less 相同,还包含水平滚动以及许多其他功能。

http://linux.die.net/man/1/most

相关内容