태그 보관물: command-history

command-history

bash 기록에서 마지막 N 줄 삭제 해당 항목을 제거하는 확실한 방법이 있습니까?

실수로 파일을 쉘에 붙여 넣을 때 bash 기록에 추악한 말도 안되는 항목이 많이 있습니다. 해당 항목을 제거하는 확실한 방법이 있습니까? 분명히 셸을 닫고 .bash_history파일을 수동으로 편집 할 수는 있지만 현재 셸 기록을 수정하는 데 사용할 수있는 API가 있습니까?



답변

history -d offset내장을 사용 하여 현재 쉘 히스토리에서 특정 라인을 삭제하거나 history -c전체 히스토리를 지울 수 있습니다.

하나의 오프셋을 인수로 사용하기 때문에 행 범위를 제거하려는 경우 실제로 실용적이지 않지만 루프를 사용하여 함수로 줄 바꿈 할 수 있습니다.

rmhist() {
    start=$1
    end=$2
    count=$(( end - start ))
    while [ $count -ge 0 ] ; do
        history -d $start
        ((count--))
    done
}

로 전화하십시오 rmhist first_line_to_delete last_line_to_delete. (의 출력에 따른 줄 번호 history)

history -w히스토리 파일에 강제로 쓰려면 사용하십시오 .


답변

명령 프롬프트에서이 하나의 라이너 만 도움이됩니다.

for i in {1..N}; do history -d START_NUM; done

START_NUM은 (는) 방문 기록의 시작 위치입니다. N은 삭제할 항목 수입니다.

전의: for i in {1..50}; do history -d 1030; done


답변

user2982704의 대답은 거의 효과가 없었지만 거의 효과가 없었습니다. 나는 이와 같이 작은 변형을 만들어야했습니다.

내 이력이 1000이라고 가정하고 마지막 50 개 항목을 삭제하고 싶습니다

start=1000

for i in {1..50}; do count=$((start-i)); history -d $count; done


답변