Strano comportamento di find -exec rmdir

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
anycolouryoulike
Packager
Packager
Messaggi: 1158
Iscritto il: ven 10 ago 2007, 0:00
Slackware: 12.2
Kernel: 2.6.34.8
Desktop: KDE 3.5.10

Strano comportamento di find -exec rmdir

Messaggio da anycolouryoulike »

Codice: Seleziona tutto

$ mkdir prova
$ cd prova
$ mkdir a
$ find . -mindepth 1 -type d
./a
$ find . -mindepth 1 -type d -exec rmdir {} \;
find: ./a: No such file or directory
$ ls a
ls: cannot access a: No such file or directory
Perché ottengo quell'errore "find: ./a: No such file or directory"?
Essendo in uno script, con set -e mi crea qualche problema.
Non si potrebbe evitare in qualche modo?
Grazie :)

Avatar utente
masalapianta
Iper Master
Iper Master
Messaggi: 2775
Iscritto il: lun 25 lug 2005, 0:00
Nome Cognome: famoso porco
Kernel: uname -r
Desktop: awesome
Distribuzione: Debian
Località: Roma
Contatta:

Re: Strano comportamento di find -exec rmdir

Messaggio da masalapianta »

da errore perchè una volta eseguito l'rmdir (che cancella 'a'), prova a fare una open() di 'a' (per poi fare fstat64(), fchdir(), getdents64() e compagnia bella), il che ovviamente non è possibile in quanto 'a' non esiste più, quindi la open() fallisce.

Avatar utente
shark1500
Linux 3.x
Linux 3.x
Messaggi: 785
Iscritto il: gio 3 apr 2008, 14:33
Slackware: current
Kernel: 2.6.27.7-smp
Desktop: kde
Località: Modna

Re: Strano comportamento di find -exec rmdir

Messaggio da shark1500 »

Devi usare l'opzione '-d' nel find.

Codice: Seleziona tutto

       -depth Process  each directory's contents before the directory itself.  The -delete
              action also implies -depth.
Altrimenti succede quello che ti ha spiegato masalapianta.

Avatar utente
anycolouryoulike
Packager
Packager
Messaggi: 1158
Iscritto il: ven 10 ago 2007, 0:00
Slackware: 12.2
Kernel: 2.6.34.8
Desktop: KDE 3.5.10

Re: Strano comportamento di find -exec rmdir

Messaggio da anycolouryoulike »

Ah già, in pratica dopo averla cancellata prova a cercarci dentro, non ci avevo pensato.
Vi ringrazio entrambi per l'aiuto! :mille:

Rispondi