の内容をの内容と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
あなたが望むことをするかどうかはシェルに依存します。