2010-07-09 6 views
0
FILE=a.txt 
FILE_SIZE = `stat -c %s $FILE` 

if [ $FILESIZE >= 1000 ]; then 

    cp $FILE /tmp/ 

    # How to empty file ? 

then 

파일의 크기를 찾을 수 및 크기 제한 및 CP 그 파일을 초과하는 경우이 acheive하는 방법 같은 파일어떻게 파일의 크기를 얻기 위해 노력하고

을 비우?

답변

1

당신은 아마 같은 일을 더 나을 것입니다.

mv 그 다음은 tmp입니다. 그 이후에 프로세스는 새로운 ${FILE}을 다시 생성합니다.

${FILE}에 오래 살았 과정 기록이있는 경우, 그것은 첫 번째 이동 후 ${FILE}.staging에 쓸을 계속할 것이다 있음을 유의하십시오.

그러나 파일을 열거 나 쓰거나 닫는 프로세스가 많은 경우 원자 이동이 가장 안전한 방법 일 것입니다.

1
echo > $FILE 

하지만 뭔가가 여전히 파일에 쓰기 작업을 수행하는 경우, 당신은 cpecho 사이에 발생하는 출력을 잃게됩니다 것을주의하십시오. 그 기간이 거의 원자 될 것이기 때문에

mv ${FILE} ${FILE}.staging 

:

관련 문제