このオプションを有効にする前に、実行されたコマンドのタイムスタンプを履歴に印刷しないようにできますか?

このオプションを有効にする前に、実行されたコマンドのタイムスタンプを履歴に印刷しないようにできますか?

これを実行すると、historyタイムスタンプを有効にする前に実行したコマンドの前に現在の日付が出力されます。とにかくこれを無視するようにできますか?

たとえば、私の.bash_history外観が次のような場合:

1  +2016-01-30 16:54:10 cd /tmp
2  +2016-01-30 16:54:10 wine *exe
3  +2016-01-30 16:54:10 grep...
4  +2016-01-30 16:54:10 sed.....
5  +2016-01-30 16:52:20 history

$HISTTIMEFORMATコマンド 1-4 で日付を出力しないようにします。これは単に現在の日付であり、このコマンドを実行したときにアクティブになっていないからです。

ベストアンサー1

あなたの.bash_historyファイルはこれと同じではなく、単にhistory表示されます。ファイルの形式は、#別の行に単一の数字(エポック以降の秒)です。時刻値が保存され、未読項目の場合は、実際の現在時刻ではなく現在のシェル読み取り履歴時間(通常はシェルが開始された時刻)が表示されます。

実際の値を持たない各項目の前に既知の時間を持つ数値を挿入するようにファイルを編集する場合は、表示されない対応する#(フォーマットされた)時間のエイリアスまたは#seconds関数(またはスクリプトsed)を設定できます。awkそして(少なくとも私が提供しなければならないバージョンである4.1.2と4.3.11では)#0ファイルを編集して特別に挿入すると、ファイルは無効と見なされて表示されます??(2つの疑問符)。変えるフォーマットされた時間。要求された時間ではありませんが、政府の仕事に十分に近いことがあります。

時間とエラーを節約するには、次のコマンドを使用してこの編集を自動化できます。

perl -ni.bak 'if /^#/ print $_.<> else print "#seconds".$/.$_' .bash_history

おすすめ記事