여기에 몇 가지 아이디어가 필요합니다. 파일 변경 크기를 감지하기 위해 if $[$x-$y>1500] then 등을 사용하고 있습니다. 파일 크기가 증가하거나 감소하여 음수가 발생할 수 있기 때문에 이것이 작동하지 않는다는 것을 알고 있습니다. xy의 절대값을 사용하는 방법이 있나요?
답변1
난 끝냈어. 새 파일(".new" 접미사 포함)을 생성하지만 이전 파일을 교체하기 전에 파일 크기 차이를 확인하고 변경 사항이 너무 많으면 중단합니다(일부 유형의 알림(예: 메일) 보내기).
저는 보통 Perl에서 이 작업을 수행하지만 bash도 비슷합니다.
$file="file_being_updated";
$new=".new";
if ( -f $file ) {
my $percent_diff = abs( 100 - 100*(-s "$file$new")/(-s $file) );
if ( $percent_diff > 20 ) { # more that this to different!
printf STDERR "File \"$file$new\" differs by more that 20%%! (%.1f%%)\n", $percent_diff;
printf STDERR "-------------- ABORTING REPLACMENT -----------\n";
exit 10;
}
}
답변2
diff=$((x - y)
diff=$(( (diff > 0) ? $diff : -1*$diff ))
if [ $diff -gt 1500 ]
then
echo do something
fi