누군가 이 명령을 사용하여 영구 쉘 기록을 삭제하도록 제안했습니다.
history -c; >$HISTFILE
그것이 무엇을 하는지 정확히 알기 전까지는 실행하고 싶지 않습니다. 도와주실 수 있나요?
답변1
이는 하나가 아닌 로 구분된 두 개의 명령입니다 ;
. 당신은 을 가지고 있고 history -c
, 그 다음에는 을 가지고 있습니다 > $HISTFILE
. 질문에 지정하지 않았지만 사용한다고 가정하면 명령이 어떻게 작동하는지 확인할 bash
수 있습니다 . 이 옵션의 내용은 다음과 같습니다 .help history
history
-c
-c clear the history list by deleting all of the entries
따라서 history -c
현재 셸 세션의 모든 기록이 삭제됩니다 .
글로벌 히스토리는 변수에 저장된 파일에 저장됩니다 $HISTFILE
. 기본적으로 이는 다음과 같습니다 ~/.bash_history
.
$ echo $HISTFILE
/home/terdon/.bash_history
Bash 쉘에서 >
명령이 없는 리디렉션 연산자는 파일을 비웁니다. 예를 들어:
$ echo "Hello world!" > file
$ cat file
Hello world!
$ > file
$ cat file
$
위에서 볼 수 있듯이 실행하면 > file
파일이 지워지므로 실행하면 > $HISTFILE
기록 파일이 지워집니다.
따라서 이 모든 것이 결합되면 history -c; > $HISTFILE
현재 셸의 기록이 지워지고 사용자의 저장된 기록도 모두 삭제됩니다.