これら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