Pagina 1 di 1
Strano comportamento di find -exec rmdir
Inviato: mar 14 set 2010, 17:18
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

Re: Strano comportamento di find -exec rmdir
Inviato: mar 14 set 2010, 17:35
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.
Re: Strano comportamento di find -exec rmdir
Inviato: mar 14 set 2010, 17:52
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.
Re: Strano comportamento di find -exec rmdir
Inviato: mar 14 set 2010, 23:10
da anycolouryoulike
Ah già, in pratica dopo averla cancellata prova a cercarci dentro, non ci avevo pensato.
Vi ringrazio entrambi per l'aiuto!
