2014-05-11 146 views
1

我有一個bash腳本。我需要對安全性進行修改。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 

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腳本:

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 

這裏:我要檢查文件的大小。如果它大於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 

如果小於10 KB或未找到文件,我只想運行此命令。

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漱口),你不需要檢查和剝離單位。對於較大的文件,'-h'將導致不同的單位。 –