Linuxシェルプログラムを誤って上書きしてしまったので修正したい

Linuxシェルプログラムを誤って上書きしてしまったので修正したい

/bin ディレクトリ内のプログラムの 1 つを誤って上書きしてしまったので、修正したいと思います。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 で必要な処理を実行できます。可能であれば、すべてのデータの 1 つのコピーを外部ドライブに保存し、できればリモートの場所に保存して、コンピューターの設置場所の問題に対して物理的に脆弱にならないようにします。

ついでに、most もチェックしてみてください。less と同じ機能があり、水平スクロールなどの多くの機能も備えています。

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

関連情報