Skrypt bash - usuwanie zbędnych plików

0

Posiadam skrypt i chce ustalić (wiem że mogę ową czynność wykonać przez find, ale nie o tym chcę rozmawiać) dlatego nie mogę wykonać test. Posiadam skrypt

#!/usr/bin/bash
#usuwanie zbędnych plików

szczur="/home/juzek/"


plik=(
"cron-*"
"cron.php??"
"cron.php?token=*"
"cronimport-cron*"
"importCron?*"
"gsitemap-cron*"
"searchcron.php?full=*"
"searchcron.php?full=*"
"update.php?"
"update.php??"
)


cykle=${#plik[@]}

for ((i=0; i<$cykle; i++))
do
		rm -f $szczur${plik[$i]}
done

Nie mogę użyć warunku

if test -f $plik; then
		rm -f "$plik"
	else
		rm -f "Nie znalazłem $plik"
	fi

gdyż wynik rozwinięcia operatora jest w jednej linii. Chcę aby wynik był linia za linią (abym mógł przeprowadzić test na każdym rozwinięciu). Czy owa pętla na to pozwala?

1
#!/usr/bin/bash
#usuwanie zbędnych plików

base_dir="/home/juzek/"

masks=(
"cron-*"
"cron.php??"
"cron.php?token=*"
"cronimport-cron*"
"importCron?*"
"gsitemap-cron*"
"searchcron.php?full=*"
"searchcron.php?full=*"
"update.php?"
"update.php??"
)

for mask in "${masks[@]}"
do

    echo $mask
    for file in $base_dir/$mask
    do
        if test -f $file; then
            echo "rm -f $file"
        fi
    done
done

Teraz można testować, ale czy o to chodziło?

0

Dziękuję za wskazówkę

0

Nie znam się, to się wypowiem.
Spróbuję po Polsku, dla kontrastu.
Prościej bym to zrobił.

find cron-* cron.php?? cron.php?token=* | xargs rm rf

1 użytkowników online, w tym zalogowanych: 0, gości: 1