GNU/Linux >> Linux の 問題 >  >> Linux

コマンドによって処理されたソースファイルと同じファイルにリダイレクトしますか?

この質問にはすでに回答があります :リダイレクト演算子は常にファイル記述子を並行して開きますか?

(2つの回答)
6年前に閉じられました。
  1. ここではリダイレクトは許可されていません。 catです 許可しませんか?しかし、
    リダイレクトは、それを使用して実行されているコマンドとは無関係ではありませんか?

    $ cat bk > bk
    cat: bk: input file is output file
    
  2. 次のリダイレクトでファイルが空になるのはなぜですか:

    $ 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_TRUNCman 2 openを参照してください )ファイルの内容を削除します。


Linux
  1. Linux のパイプとリダイレクト - 解説!

  2. 出力をファイルに追加する方法は?

  3. time コマンドの出力を Linux のファイルにリダイレクトする方法は?

  1. LinuxでTarコマンドを使用する方法

  2. `time Command`でコマンドの出力をリダイレクトしますか?

  3. イオリダイレクションとヘッドコマンド?

  1. ファイルの内容をコマンド「echo」にリダイレクトしますか?

  2. Linuxでのファイルコマンドの基本的な例

  3. LinuxでのSplitコマンドの9つの便利な例