IT박스

이미 존재하고 어쨌든 보호 된 리눅스에서 파일을 비우는 방법 (“잘라 내기”)은 무엇입니까?

itboxs 2020. 7. 28. 08:16
반응형

이미 존재하고 어쨌든 보호 된 리눅스에서 파일을 비우는 방법 (“잘라 내기”)은 무엇입니까?


자주 잘라야하는 서버에 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

우분투 리눅스에서 테스트


파일 크기를 0으로 설정하기에 충분합니다.

> error.log

크레딧은 내 수석 동료에게 적용됩니다.

:> filename

이로 인해 로그 파일이 손상되지 않으므로 syslog에서 로그 파일을 사용할 수도 있습니다.


false | 티 파일

잘 작동 할 수도 있습니다


sudo는 리디렉션 과 함께 작동하지 않기 때문에이 목적을 위해 명령을 >좋아합니다.tee

echo "" | sudo tee fileName

누구나 리눅스 시스템 에서 파일을 자르기 위해이 명령을 시도 할 수 있습니다

이것은 모든 형식으로 작동합니다 :

truncate -s 0 file.txt

나는 이것을 좋아한다 : cp /dev/null file


당신은 또한 시도 할 수 있습니다 :

echo -n > /my/file

참고 : https://stackoverflow.com/questions/2423281/how-to-empty-truncate-a-file-on-linux-that-already-exists-and-is-protected-i

반응형