catと '>'の違いはファイルをゼロにします。

catと '>'の違いはファイルをゼロにします。

これら2つのコマンドがファイルをゼロにする方法に違いはありますか?後者は前者より短い方法ですか?後ろで何が起こるのか?

両方

$ cat /dev/null > file.txt

$ > file.txt 

生産する

-rw-r--r--  1 user  wheel  0 May 18 10:33 file.txt

ベストアンサー1

cat /dev/null > file.txt猫の無駄な使用

デフォルトでは何も出力されcat /dev/nullませcatん。はい、うまくいきます。しかし、外部プロセスへの不要な呼び出しを引き起こすので、多くの人が眉をひきます。
これは一般的なために起こっていることの一つです。

justを使用すると、> file.txtほとんどのシェルで動作しますが、完全に移植可能ではありません。完全な移植性が必要な場合は、次の方が良いオプションです。

true > file.txt
: > file.txt

:および/またはtrue出力データでもなく、シェル組み込みcat(外部ユーティリティ)なので、より軽くて「適切」です。

 

修正する:

tylerlが彼のコメントで述べたように、構文もあります>| file.txt

ほとんどのシェルには通過を防ぐ設定があります>。代わりにそれを使用する必要があります>|。これは、実際に添付しようとしたときに人のミスを防ぐためです>>。を使用してこの動作をオンにすることができますset -C

したがって、ファイルを切り取る最も簡単で適切で移植可能な方法は次のとおりです。

:>| file.txt

おすすめ記事