SW/리눅스

Linux : File을 Truncate (Empty) 방법, 예제, 명령어

얇은생각 2022. 2. 23. 07:30
반응형

경우에 따라 기존 파일을 0 길이로 잘라내거나 비워 둘 수 있습니다. 간단히 말해, 파일을 자른다는 것은 파일을 삭제하지 않고 파일 내용을 제거하는 것을 의미합니다.

파일을 자르는 것은 파일을 삭제하고, 다시 만들고, 올바른 사용 권한과 소유권을 설정하는 것보다 훨씬 빠르고 쉽습니다. 또한 파일을 프로세스에 의해 열면 파일을 사용하는 프로그램이 오작동할 수 있습니다.

Linux 시스템에서 셸 리디렉션 및 잘라내기 명령을 사용하여 파일을 0 크기로 잘라내는 방법에 대해 설명합니다.

 

 

Linux : File을 Truncate (Empty) 방법, 예제, 명령어

 

 

셸 리디렉션

파일을 자르는 데 가장 쉽고 가장 많이 사용되는 방법은 > 셸 리디렉션 연산자를 사용하는 것입니다.

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

: > filename

 

 

명령을 분해해 보겠습니다.

: colon은 true를 의미하며 출력을 생성하지 않습니다.

리디렉션 연산자 >는 이전 명령의 출력을 지정된 파일로 리디렉션합니다.

파일 이름, 잘라낼 파일을 선택합니다.

 

파일이 있으면 파일이 0으로 잘립니다. 그렇지 않으면 파일이 만들어집니다.

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

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

cat /dev/null > filename

 

 

사용할 수 있는 또 다른 명령은 에코입니다. -n 옵션은 에코에 새 줄을 추가하지 말라고 지시합니다.

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 명령에 연결하고 sudo로 tee 권한을 상승시킨 다음 빈 출력을 지정된 파일에 쓰는 것입니다.

: | sudo tee filename

 

 

 

잘라내기 명령

잘라내기 기능은 지정된 크기로 파일 크기를 축소하거나 확장할 수 있는 명령줄 유틸리티입니다.

잘라내기 명령을 사용하여 파일을 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

 

 

로그 회전 도구를 사용하여 로그 파일을 회전, 압축 및 제거하는 것이 더 좋습니다.

리눅스에서 파일을 잘라내려면 리디렉션 연산자 > 다음에 파일 이름을 사용하십시오.

반응형