Skrypt przetwarza podkatalogi w bieżącej lokalizacji, tworząc archiwa tar a następnie usuwa przetworzony katalog.

W pętli for możemy użyć maski zawężając wynik wyszukiwania np.

for i in *dump*; do

lub użyć polecenia ls np.

for i in $(ls -A); do
#!/usr/bin/env bash

clear

echo
echo -----------------------------------------------
echo "Znajdujesz się w katalogu $PWD"
echo
echo "!!!UWAGA! Niebezpieczenstwo!!!"
echo
echo -n "Czy usunac katalogi po archiwizacji? [N/t]: "
read usunac

case "$usunac" in
    "N"|"n") usunac=false ;;
    "T"|"t") usunac=true  ;;
    *)       usunac=false ;;
esac

if [ $# -gt 0 ]; then
    case "$1" in
        "tar")                  ext=tar ;;
        "tgz"|"tar.gz")         ext=tgz ;;
        "tbz"|"tbz2"|"tar.bz2") ext=tbz ;;
        "txz"|"tar.xz")         ext=txz ;;
    esac
else
    ext=tar
fi

for i in *
do
    if [ -d $i ]; then
        echo Archiwizuje $i
        tar -cavf $i.$ext $i
        if [ $? = 0 ]; then
            if [ $usunac == 'true' ]; then
                echo "!!! Usuwam: $i"
                rm -rf "$i"
            fi
        else
            echo "Wystąpił BŁĄD: $?"
            exit 1
        fi
    fi
done

wstecz

Date: 2020-10-24T19:57:51+02:00