
UNIX を学び始めたばかりなので、この質問は本当に初心者のように思われるかもしれませんが、回答をいただければ幸いです。Google の助けを借りて、すでに 1 時間自力で解決しようとしていますが、成功していません。
cat /etc/shadow 2>&1 | wc -l
このコマンドの効果は何でしょうか? 私の推測は次のとおりです:
- このコマンドは、行数「/etc/shadow」の場合、標準エラーがある場合は標準出力にリダイレクトされ、エラー行がカウントされます。
- このコマンドは、ファイル「/etc/shadow」の場合、標準エラーがある場合は標準出力にリダイレクトされ、エラーの行がカウントされます。
答え1
X>&Y
はファイル記述子のリダイレクト: これは、fdへのすべての出力X
が実はY
. に入ると2>&1
、STDERR の出力が STDOUT にスローされます。
wc -l
入力行数を STDOUT に書き込みます。
一緒に、コマンドはcat /etc/shadow 2>&1 | wc -l
の行数を返します/etc/shadow
。同様にエラー行の数。
もし、あんたがしないエラー行をカウントしたい場合は、 を使用しますcat /etc/shadow | wc -l
。
答え2
これは直接的な答えではありません。
実験をすることを妨げているものは何ですか?
実験を行った場合、自分自身の疑問に答えられるかもしれません。
さまざまなコマンドの組み合わせを実行します。
cat /etc/shadow
cat /etc/shadows
cat /etc/shadow 2>&1
cat /etc/shadows 2>&1
そしてそれぞれをパイプでwc
cat /etc/shadow | wc
などなど。