Nice programing

큰 파일을 자르는 Unix 쉘 스크립트

nicepro 2020. 10. 4. 13:22
반응형

큰 파일을 자르는 Unix 쉘 스크립트


3GB의 공간에 도달하면 응용 프로그램에 의해 지속적으로 작성 / 열리는 파일을 자르거나 비우는 Unix 스크립트를 작성하려고합니다. 나는 아래 명령이 그것을 할 것이라는 것을 알고 있습니다.

cp /dev/null [filename]

그러나 나는 이것을 cron 작업으로 프로덕션 환경에서 자동으로 실행할 것입니다. 여기에 게시하여 이와 유사한 작업을 수행하는 동안 문제가 발생했는지 확인하십시오.


다른 답변을 추가하기 위해

: > filename

: bash (POSIX 호환)에서 작동하지 않으므로 본질적으로 쓰기 위해 파일을 열고 (물론 파일을 자른 다음) 즉시 닫습니다.

편집 : 쉘터가 주석을 달았 듯이 리디렉션과 함께 진행하기 위해 실제로 명령이 필요하지 않습니다.

$ echo foo > foo.txt
$ cat foo.txt
foo
$ > foo.txt
$ cat foo.txt
$

간단한 리디렉션만으로도 파일이 지워집니다.


데비안에서 다음 명령을 사용했습니다.

truncate -s 0 filename

그것은 나에게 합리적인 것 같습니다. 물론 유닉스에서는 약 50 가지의 다른 방법으로이를 수행 할 수 있습니다. 예를 들면

echo -n "" >filename
cat /dev/null >filename

trunc filename

UNIX의 AIX 풍미에서 작동

참고 URL : https://stackoverflow.com/questions/13575477/unix-shell-script-to-truncate-a-large-file

반응형