웹사이트 검색

Linux에서 대용량 파일 콘텐츠를 비우거나 삭제하는 5가지 방법


경우에 따라 Linux 터미널에서 파일을 처리하는 동안 Linux 명령줄 편집기를 사용하여 파일을 열지 않고도 파일 내용을 지우고 싶을 수 있습니다. 이것이 어떻게 달성될 수 있습니까?

이 기사에서는 몇 가지 유용한 명령을 사용하여 파일 내용을 비우는 여러 가지 방법을 살펴보겠습니다.

주의: 다양한 방법을 살펴보기 전에 Linux에서는 모든 것이 파일이므로 비우고 있는 파일이 중요한 사용자 또는 시스템 파일이 아닌지 항상 확인해야 합니다. . 중요한 시스템이나 구성 파일의 내용을 지우면 치명적인 응용 프로그램/시스템 오류나 오류가 발생할 수 있습니다.

다음은 명령줄에서 파일 내용을 지우는 방법입니다.

중요: 이 문서의 목적에 따라 다음 예에서는 access.log 파일을 사용했습니다.

1. Null로 리디렉션하여 파일 내용 비우기

아래와 같이 쉘 리디렉션 null(존재하지 않는 개체)을 사용하여 파일 내용을 비우거나 비우는 가장 쉬운 방법은 다음과 같습니다.

> access.log

2. 'true' 명령 리디렉션을 사용한 빈 파일

여기서는 기호 를 사용합니다:true 명령과 본질적으로 동일한 쉘 내장 명령이며 무작동(작업 없음)으로 사용할 수 있습니다. .

또 다른 방법은 다음과 같이 : 또는 true 내장 명령의 출력을 파일로 리디렉션하는 것입니다.

: > access.log
OR 
true > access.log

3. /dev/null과 함께 cat/cp/dd 유틸리티를 사용하여 파일 비우기

Linux에서 null 장치는 기본적으로 프로세스의 원치 않는 출력 스트림을 삭제하거나 입력 스트림에 적합한 빈 파일로 사용됩니다. 이는 일반적으로 리디렉션 메커니즘에 의해 수행됩니다.

따라서 /dev/null 장치 파일은 전송된 모든 입력을 기록(제거)하는 특수 파일이거나 해당 출력은 빈 파일의 출력과 동일합니다.

또한 cat 명령을 사용하여 /dev/null의 출력을 입력으로 해당 파일(파일)로 리디렉션하여 파일 내용을 비울 수 있습니다.

cat /dev/null > access.log

다음으로, 표시된 대로 cp 명령을 사용하여 파일 내용을 비웁니다.

cp /dev/null access.log

다음 dd 명령에서 if는 입력 파일을 의미하고 of는 출력 파일을 나타냅니다.

dd if=/dev/null of=access.log

4. echo 명령을 사용하여 파일 비우기

여기서는 빈 문자열과 함께 echo 명령을 사용하고 다음과 같이 파일로 리디렉션할 수 있습니다.

echo "" > access.log
OR
echo > access.log

참고: 빈 문자열은 null과 동일하지 않다는 점을 명심해야 합니다. 문자열은 비어 있을 수 있으므로 이미 객체이지만 null은 단순히 객체가 존재하지 않음을 의미합니다.

이러한 이유로 위의 echo 명령 중 out을 파일로 리디렉션하고 cat 명령을 사용하여 파일 내용을 보면 빈 줄(빈 문자열)이 인쇄됩니다.

파일에 null 출력을 보내려면 echo에게 이전 명령에서 생성된 빈 줄로 연결되는 후행 개행 문자를 출력하지 않도록 지시하는 -n 플래그를 사용하세요.

echo -n "" > access.log

5. truncate 명령을 사용하여 파일 비우기

truncate 명령은 파일 크기를 정의된 크기로 축소하거나 확장하는 데 도움이 됩니다.

파일 크기를 지정하는 -s 옵션과 함께 사용할 수 있습니다. 파일 콘텐츠를 비우려면 다음 명령과 같이 크기 0(영)을 사용합니다.

truncate -s 0 access.log

지금은 여기까지입니다. 이 기사에서는 간단한 명령줄 유틸리티와 쉘 리디렉션 메커니즘을 사용하여 파일 내용을 지우거나 비우는 여러 방법을 다루었습니다.

이것이 이 작업을 수행하는 유일한 실용적인 방법은 아닐 수 있으므로 아래 피드백 섹션을 통해 이 가이드에 언급되지 않은 다른 방법에 대해서도 알려주실 수 있습니다.