답변:
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
히스토리 파일에 강제로 쓰려면 사용하십시오 .
$(history | wc -l)
변수 $HISTCMD
가 있습니다.
명령 프롬프트에서이 하나의 라이너 만 도움이됩니다.
for i in {1..N}; do history -d START_NUM; done
START_NUM은 (는) 방문 기록의 시작 위치입니다. N은 삭제할 항목 수입니다.
전의: for i in {1..50}; do history -d 1030; done
tot_lines=$(history | wc -l)
다음 반복합니다history -d $(( tot_lines - $1 ))
.