これを実行すると、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