Linux系には疑似デバイスというものがあります。名の通り物理的には存在しないデバイスのことです。/dev 配下に存在して、ググってみると色々面白いものが出てくるのですが今回は/dev/null についてまとめます。
何ができる
リダイレクトやOSが吐き出すデータをこのデバイスに流すことで、データを捨てることができます。
具体例
知らない人は下記を実行すると、/dev/null が上書きされてしまうはずと予測しそうなものです。実際は上書きされません。
試してみましょう。
※ リダイレクトの記号として”>”を使っているのですが、なぜか”> “とHTML表示されてしまっています。置き換えてお読みください。
1 2 3 4 5 6 7 |
test@DESKTOP MINGW64 ~ $ echo '/dev/nullとはなんなのか' > /dev/null test@DESKTOP MINGW64 ~ $ cat /dev/null test@DESKTOP MINGW64 ~ |
シチュエーション
- logingとしてconfigの中でどこか書き込むファイルを指定しないと動かないソフトがある。でもそのログはいらないので捨ててしまいたい。
→log_path=’/dev/null’ - バッチの中でファイルを空にしたい。
→cat /dev/null > hoge.txt
→cp /dev/null hoge.txt - 標準出力と標準エラーの両方/dev/null にリダイレクトして破棄したい。
→ $ bash test.sh 1>/dev/null 2>&1
所謂、使い方にセンスが問われる系の機能かと思います。
以上!