Zobacz koniecznie
man bash (po polsku jest) oraz
man du oraz przykłady w sieci, potem wykład
http://www.uniforum.chi.il.us/slides/bash1.pdf na stronie 32, by porównać choćby
[ z
[[.
Skąd wziąłeś takie użycie -gt i dlaczego? Przecież to operator porównania. Z kolei znak
= jest operatorem przypisania. Dalej, "1GB" jest dla basha niczym więcej niż ciągiem znaków. Bash jest w stanie rozróżnić jedynie czy plik ma zerową długość, czy nie (operator
-s).
Ty musisz wynik polecenia du na pliku (który dla basha ma być liczbą, więc musisz wywołać du tak, by pokazał wynik w bajtach) porównać z liczbą bajtów równą gigabajtowi.
Polecenia po "then" nie komentuję - po prostu czeka Cię intensywna lektura (z doświadczeniami) na temat podstaw powłoki i poleceń wspólnych dla uniksopodobnych systemów. Może tylko polecę
man cp. Podanie Ci gotowego rozwiązania nie nauczyłoby Cię zbyt wiele w tym momencie.
ed. poprawka -z na -s