자주 잘라야하는 내 서버에 error.log라는 파일이 있습니다. 파일에 대한 rw 권한이 있습니다. vi에서 파일 열기> 모든 콘텐츠 삭제> 작업 저장 (분명히). 하지만 아래를 시도하면
cat /dev/null > error.log
나는 메시지를 받는다
File already exists.
분명히 실수로 파일을 덮어 쓰는 것을 방지하기 위해 서버에서 일종의 구성이 수행됩니다. 누구든지 단일 명령으로 파일을 “자르는”방법을 말할 수 있습니까?
답변
당신은이 noclobber
옵션을 설정합니다. 오류는 csh에서 발생한 것처럼 보이므로 다음을 수행합니다.
cat /dev/null >! file
내가 틀렸고 bash를 사용하고 있다면 다음을 수행해야합니다.
cat /dev/null >| file
bash에서는 다음과 같이 줄일 수도 있습니다.
>| file
답변
함수 자르기를 사용할 수도 있습니다.
$truncate -s0 yourfile
권한이 거부 된 경우 sudo를 사용하십시오.
$sudo truncate -s0 yourfile
도움말 / 매뉴얼 : man truncate
우분투 Linux에서 테스트 됨
답변
이것은 파일 크기를 0으로 설정하기에 충분합니다.
> error.log
답변
저의 선배 동료는 다음과 같은 점을 인정합니다.
:> filename
이것은 로그 파일을 손상시키지 않으므로 예를 들어 syslog에서도 사용할 수 있습니다.
답변
false | tee fileToTruncate
잘 작동 할 수 있습니다
답변
답변
누구나이 명령을 시도하여 Linux 시스템 에서 파일을자를 수 있습니다.
이것은 모든 형식에서 확실히 작동합니다.
truncate -s 0 file.txt