Bash tarihçesinden çiftleri nasıl kaldırabilirsiniz?


6

Tarihi farklı oturumlardan kurtardığımdan beri bu, erasedups yardım edemem çünkü aşağıdakileri kullanıyorum:

PROMPT_COMMAND="$PROMPT_COMMAND;history -a"

Tarihte kopyaları silmek için kolay bir yol var mı?

Yanıtlar:


9

Zaten .bash geçmişinde olan yinelenen satırları çalıştırarak kaldırmak mümkündür.

nl ~/.bash_history | sort -k 2  -k 1,1nr| uniq -f 1 | sort -n | cut -f 2 > unduped_history

bunu takiben

cp unduped_history ~/.bash_history

Aşağıdakileri ~ / .bashrc dosyasına koymanızı da tavsiye ederim:

export HISTCONTROL=ignoreboth:erasedups

1
Niye ya ignoreboth? Bu ikisini de aktive eder ignoredups ve ignorespace ve ikincisi burada ilgili görünmüyor. Ayrıca, emriniz basitçe boşalacak .bash_history, İstediğiniz cp unduped_history ~/.bash_history veya cat unduped_history > ~/.bash_history.
terdon

Katılıyorum ignorespace ihmal edilebilir. Yazmayı özledim cp kazayla. Ekstra seçeneği ekledim -k 1,1nr çoğaltılan komutların son halini alan ilk sıralamaya.
NamelessDeveloper

Harika, şimdi çok havalı olabilirim nl net bir vicdan ile hile :)
terdon
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.