この質問にはすでに回答があります :リダイレクト演算子は常にファイル記述子を並行して開きますか?
(2つの回答)
6年前に閉じられました。
Linux
(2つの回答)
6年前に閉じられました。
-
ここではリダイレクトは許可されていません。
cat
です 許可しませんか?しかし、
リダイレクトは、それを使用して実行されているコマンドとは無関係ではありませんか?$ cat bk > bk cat: bk: input file is output file
-
次のリダイレクトでファイルが空になるのはなぜですか:
$ less bk > bk
awk
less
と同じように機能します リダイレクトに関して。awk
上記の例は無意味ですが、私が実際に問題を見つけたのはです
一般的に、リダイレクトを使用する正しい方法は何ですか?
承認された回答:
問題は、出力リダイレクトがless
の前にファイルを強制終了することです。 開始されました:
open("file", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3
dup2(3, 1) = 1
close(3) = 0
execve("/usr/bin/less", ["less", "-WNS", "file"], [/* 102 vars */]) = 0
通常の出力リダイレクトはファイルを上書きします。 O_TRUNC
(man 2 open
を参照してください )ファイルの内容を削除します。