중요하지 않은 파일을 여러 개 파괴했는데 이유를 모르겠습니다. 나는 다음과 같은 명령을 실행해 왔습니다.
tr -sc 'A-Za-z' '\n' > somefile.txt | less
출력이 없고(END가 깜박이는 빈 페이지) 확인 후 파일의 모든 내용이 삭제됩니다.
전체 텍스트 파일을 삭제하는 또 다른 명령
grep someword > someotherfile.txt | less
답변1
이 >
연산자는 "명령의 출력을 가져오고 지정된 파일을 자른 다음 명령의 출력을 해당 파일에 쓴다는 의미입니다.
명령줄 읽기 당신이 원하는 것은 <
"이 파일에서 표준 입력을 읽고 이를 명령에 공급하는 것"입니다.
답변2
I/O 리디렉션에 익숙해지면 noclobber
셸 설정을 활성화하는 것이 "더 안전하다"는 것을 알게 될 것입니다. 이렇게 하면 파일이 실수로 손상되는 것을 방지할 수 있습니다. 쉘 매뉴얼 페이지를 참조하고http://en.wikipedia.org/wiki/Clobbering
답변3
이러한 명령은 사용자가 지시했기 때문에 이미 텍스트 파일을 손상시켰습니다( > file
기존 파일은 쓰기 전에 잘립니다). 당신은 아마도 <
"표준 입력 리디렉션"을 의미하는 를 찾고 있을 것입니다.~에서여기".