の内容をの内容とfile2一致させたい場合はfile1、明らかに実行するだけcp file1 file2です。
しかし、私が保存したい場合は、すべてについてfile2 除くなど、など、コンテンツ所有者、権限、拡張属性、ACLを、ハードリンクを、そして私が実行したいとは思わないでしょうcp。*その場合、私はちょうどウンチしたいです内容file1にfile2。
次のように実行されるようです。
< file1 > file2
しかし、それは機能しません。 file2何も切り捨てられず、書き込まれません。しかしながら、
cat < file1 > file2
動作します。
最初のバージョンが機能しないことに驚きました。
2番目のバージョンはUUOCですか?単にリダイレクトを使用して、コマンドを呼び出さずにこれを行う方法はありますか?
注:私は、UUOCが真のアンチパターンというよりも重要な点であることを認識しています。
* のようtniles09が発見された、cp 意志をこのケースでは、実際の仕事に。
< ...の無駄な使用です
file1存在しないか、または他の読めないとあなたがそれを開く< 前に、 >出力が開かれ、その後、あなたが許可したときに何が起こるかを検討しcat、それを開こうとします。
cat(デフォルトで)起動し、基本的に2番目のコマンドを実行します。コメントに収まらない以上の詳細については、以下のステファンシャゼラスの回答を参照してください。
< file1 > file2あなたが望むことをするかどうかはシェルに依存します。