2014-05-11 3 views
1

나는 bash 스크립트를 가지고 있습니다. 나는 안전을 위해 수정이 필요하다.배시 스크립트 - 파일 크기

내 원래의 bash는 스크립트 : 여기

mv /home/script/backup /home/script/backup2 
mysql -u user -ppassword -Ddatabase --batch --skip-column-names -e 'select id, url from videos where url like "%http%" limit 1' | 
while read id url 

do youtube-dl -o "/home/script/uploads/$id.mp4" -f 18/17/22/mp4 "$url" 
done 

:

mv /home/script/backup /home/script/backup2 
mysql -u user -ppassword -Ddatabase --batch --skip-column-names -e 'select id, url from videos where url like "%http%" limit 1' | 
while read id url 

do youtube-dl -o "/home/script/uploads/$id.mp4" -f 18/17/22/mp4 "$url" 
done 

mysql -u user -ppassword -Ddatabase -e "UPDATE videos SET url=CONCAT(id,'.mp4') WHERE url LIKE '%http%' limit 1" ; 

mysql -u user -ppassword -Ddatabase -e "UPDATE videos SET source_id='1' WHERE source_id in (3) limit 1"; 

mv /home/script/backup2 /home/script/backup 

exit 

나는이 bash는 스크립트를 필요로 내가 파일 크기를 확인하시기 바랍니다. 10 KB보다 큰 경우 다음 명령을 모두 실행하고 싶습니다.

mysql -u user -ppassword -Ddatabase -e "UPDATE videos SET url=CONCAT(id,'.mp4') WHERE url LIKE '%http%' limit 1" ; 

mysql -u user -ppassword -Ddatabase -e "UPDATE videos SET source_id='1' WHERE source_id in (3) limit 1"; 

mv /home/script/backup2 /home/script/backup 

exit 

파일이 10KB 미만이거나 파일을 찾을 수없는 경우이 명령을 실행하고 싶습니다.

mv /home/script/backup2 /home/script/backup 

exit 

답변

1

파일 크기를 바이트 단위로 가져 오려면 stat 프로그램을 사용할 수 있습니다. 이 유형에 대한 자세한 내용은 명령 줄에 man stat을 입력하십시오. stat -c %s <file path>은 파일 크기를 바이트 단위로 출력하므로 사용자가 확인할 수 있어야합니다.

1

James가 말한 것 외에도 파일 크기를 확인하는 또 다른 방법은 du 명령을 사용하는 것입니다.

du -h somefile.txt 

결과 :

4,0K somefile.txt 

파일 이름을 생략하려면이 발행 할 수

du -h somefile.txt | cut -f 1 

결과 :

4,0K 
+0

당신은'-h' (인간을 생략 할 수있다 읽을 수있는) 이것은 숫자가 K로 주어지는 결과를 낳습니다 (단, K는 p가되지 않습니다). rinted), 유닛을 점검하고 제거 할 필요는 없습니다. '-h'는 더 큰 파일을위한 다른 단위가 될 것이다. –