Diskuse:Bash
Úklid adresářů
Stará verze úklidu adresářů nepracovala korektně se soubory obsahujícími v názvech souborů bílé znaky a byla nahrazena správným řešením s využitím parametru -print0 příkazu find a programu xargs.
#!/bin/bash # # 1) cp uklid /etc/init.d # 2) update-rc.d uklid defaults # # nebo # # update-rc.d uklid start 93 S . # # pokud spustim pouze pri startu systemu (tecka je soucasti syntaxe) case "$1" in start) echo "Starting script uklid " # uklid pracovniho adresare # ----------------------------------------------------------- NULL=/home/cepek/.null for WORK in /home/cepek/work /home/cepek/.tmp do if ! test -d $NULL; then mkdir $NULL; fi touch --date="6 days ago" $NULL/time-stamp if ! test -d $NULL/`date -I` ; then mkdir $NULL/`date -I` fi if ! test -s $WORK/tmp...; then touch $WORK/tmp...; fi # avoids empty dir for i in $WORK/* do if test "$i" -ot $NULL/time-stamp; then chmod -R u+w "$i" 2>/dev/null touch "$i" mv -v "$i" $NULL/`date -I` fi done rmdir $NULL/`date -I` 2>/dev/null if ! test -s $WORK/tmp...; then rm -f $WORK/tmp...; fi touch --date="60 days ago" $NULL/time-stamp for i in $NULL/* do if test "$i" -ot $NULL/time-stamp; then rm -rf "$i" fi done done ;; stop) echo "Stopping script uklid" ;; *) echo "Usage: /etc/init.d/uklid {start|stop}" exit 1 ;; esac exit 0