Hirdetés

Új hozzászólás Aktív témák

  • makro
    senior tag

    Sziasztok!

    Egy scriptet próbálok összedobni, ami az utolsó kettő kivételével törli egy mappából a fájlokat.

    Valami ilyesmi az elképzelés:

    #!/bin/sh

    DIR=/home/user/Képek
    DB=`ls -l $DIR | wc --l`
    LIST=`ls -tr $DIR | head -n -2`
    if [ -s $DB 3]
    then
    rm -rf $LIST
    else
    exit 0
    fi

    Két gondom van vele: Egyrészt a "if [ -s $DB 3]" sor hibát dob, miként lehetne megadni, hogy akkor fusson le a törlés, ha több mint két fájl van a mappában (azért 3-at adtam meg, mert a mappát is beleszámolja)? A másik, hogy a törlés nem fut le.

    Ha külön kilistázom, így: "ls -tr /home/user/Képek | head -n -2", megmutatja a találatokat, és másik paranccsal törölni is tudom, de a kettő együtt hibát dob: ""rm: ”003.jpg” nem törölhető: Nincs ilyen fájl vagy könyvtár", holott manuálisan megadva törli. Ha nem írom hozzá az rf kapcsolót, akkor nem panaszkodik, de nem történik semmi.

    szia,

    ez mindent fájlt töröl:

    #!/usr/bin/sh
    DIR="/home/user/Képek"
    LIST=`ls -p $DIR | grep -v /`
    if [ "${#LIST[@]}" -gt 0 ]
    then
    for i in $LIST; do
    rm -rfv "$DIR/$i"
    done
    fi

    Mi alapján választod ki az utolsó kettőt?

Új hozzászólás Aktív témák