私が走るとき
$ ls -R / &
(プロセスはバックグラウンドに降りる予定でしたが&
)最終的に座ってシステムの完全なリストを見なければなりませんでした。 CTRL+C または CTRL+Z を押しても役に立ちません。私は何が間違っていましたか?
ベストアンサー1
ls -R /
バックグラウンドで実行すると、コマンドはすぐに開始され、コールシェル(インタラクティブシェル)に再び制御権が渡されます。ただし、標準出力と標準エラーストリームはls
まだ端末に接続されているため、端末にコマンド出力が表示されます。
コメントから/dev/null
コマンド出力を端末にストリーミングしないようにリダイレクトできることを示す次の質問をします。
ls -R / >/dev/null 2>&1 &
その後の質問は「Exit 1
なぜjobs -l
。
ls
完全に正常に実行されなかったため、終了ステータスはゼロではありません。システム全体のすべてのファイルを再帰的にリストしようとしていますが、コマンドを実行しているユーザーがシステムの一部のディレクトリを読み取ることができないため、これは本当ではありません。標準エラーストリームをコマンドラインから削除/dev/null
してリダイレクトしないと、2>&1
端末にエラーが表示されることがあります。