기계적 인조 인간

리눅스에서 파일을 자르는 방법

아폴론 징글벨락

아폴론 징글벨락

차례:

Anonim

경우에 따라 기존 파일을 길이가 0으로 자르고 (빈) 있습니다. 간단히 말해서 파일을 자르는 것은 파일을 삭제하지 않고 파일 내용을 제거하는 것을 의미합니다.

파일 잘라내 기는 파일을 삭제하고 다시 만들고 올바른 사용 권한과 소유권을 설정하는 것보다 훨씬 빠르고 쉽습니다. 또한 프로세스에서 파일을 연 경우 파일을 제거하면 파일을 사용하는 프로그램이 오작동 할 수 있습니다.

이 학습서에서는 쉘 재 지정 및 truncate 명령을 사용하여 Linux 시스템에서 파일을 0 크기로 자르는 방법에 대해 설명합니다.

셸 리디렉션

파일을 자르는 가장 쉽고 가장 많이 사용되는 방법은 > 쉘 재 지정 연산자를 사용하는 것입니다.

리디렉션을 사용하여 파일을 자르는 일반적인 형식은 다음과 같습니다.

: > filename

명령을 세분화하자:

  • : 콜론은 true 의미하며 출력을 생성하지 않습니다. 경로 재 지정 연산자 > 이전 명령의 출력을 지정된 파일로 경로 재 지정합니다. filename , filename 는 파일입니다.

파일이 존재하면 0으로 잘립니다. 그렇지 않으면 파일이 생성됩니다.

대신 : 출력을 생성하지 않는 다른 명령을 사용할 수도 있습니다.

다음은 cat 명령을 사용하여 파일 끝 문자 만 반환하는 /dev/null 장치의 내용을 출력하는 예입니다.

cat /dev/null > filename

사용할 수있는 다른 명령은 echo 입니다. -n 옵션은 echo 에 줄 바꿈을 추가하지 않도록 지시합니다.

echo -n > filename

Bash 또는 Zsh와 같은 대부분의 최신 쉘에서는 리디렉션 기호 앞에 명령을 생략하고 다음을 사용할 수 있습니다.

> filename

파일을 자르려면 파일에 대한 쓰기 권한이 있어야합니다. 일반적으로이를 위해 sudo 를 사용하지만 상승 된 루트 권한은 리디렉션에 적용되지 않습니다. 예를 들면 다음과 같습니다.

sudo: > /var/log/syslog

bash: /var/log/syslog: Permission denied

sudo 리디렉션 할 수있는 몇 가지 솔루션이 있습니다. 첫 번째 옵션은 sudo를 사용하여 새 쉘을 실행하고 -c 플래그를 사용하여 해당 쉘 내에서 명령을 실행할 수 있습니다.

sudo sh -c '> filename'

또 다른 옵션은 출력을 tee 명령으로 파이프하고 tee 권한으로 tee 권한을 높이고 빈 출력을 지정된 파일에 쓰는 것입니다.

: | sudo tee filename

truncate 명령

truncate 파일 크기를 주어진 크기로 줄이거 나 늘릴 수있는 명령 줄 유틸리티입니다.

truncate 명령을 사용하여 파일을 0 크기로 자르는 일반적인 구문은 다음과 같습니다.

truncate -s 0 filename

-s 0 옵션은 파일 크기를 0으로 설정합니다.

예를 들어 Nginx 액세스 로그를 비우려면 다음을 사용하십시오.

sudo truncate -s 0 /var/log/nginx/access.log

모든 로그 파일 비우기

시간이 지남에 따라 디스크 공간을 많이 차지하는 많은 로그 파일로 인해 디스크 드라이브가 복잡해질 수 있습니다.

다음 명령은 /var/log 디렉토리에서“.log”로 끝나는 파일을 비 웁니다.

sudo truncate -s 0 /var/log/**/*.log

더 좋은 옵션은 logrotate 도구를 사용하여 로그 파일을 회전, 압축 및 제거하는 것입니다.

결론

Linux에서 파일을 자르려면 경로 재 지정 연산자 > 와 파일 이름을 차례로 사용하십시오.

터미널 자르기