[Linux-Biella] R: File che cominciano con un trattino e possibili rischi

Scopel Emanuele (DD PIV) EMANUELE.SCOPEL a enel.it
Ven 15 Feb 2008 14:35:08 CET


 

> -----Messaggio originale-----
> Da: linux-bounces a ml.bilug.linux.it 
> [mailto:linux-bounces a ml.bilug.linux.it] Per conto di Daniele (Mastro)
> Inviato: venerdì 15 febbraio 2008 14.20
> A: Mailing List del Biella Linux User group
> Oggetto: Re: [Linux-Biella] File che cominciano con un 
> trattino e possibili rischi
> 
> Paul TT ha scritto:
> > * per la bash fa esattamente quell che ci si aspetta, cioe' 
> > sostituisce con quello che deve quello che trova...
> 
> vedi sotto
> 
> > se fai rm *, sono stracaxxi tuoi, cmq.
> 
> rm *
> cancella i file e non le directory perché io non gli ho dato 
> alcuna opzione se il comando non fa ciò che mi aspetto 
> dev'essere quantomeno dev'essere scritto a caratteri cubitali 
> nel manuale!!
> cosa che non mi risulta per nulla
> 
> > se da quando e' stato inventato uni*, tutti dicono di non 
> farlo ci sara' 
> > un motivo, eh...
> 
> quando devi cancellare tutti i file di una directory tu lanci 
> l'rm file per file?
> 
> > inoltre, RTFM, se vuoi te lo scrivo piu' grosso....
> > man rm
> > e leggi........
> 
> letto
> non c'è NULLA che parli di * se non una citazione a "rm -r .*"
> ne qualcosa che accenni a file con nomi particolari come "-"

Ma se fai: rm '/home/tua-home/-rf'
              ^                  ^
Non ricordo se ci vanno i doppi apici o basta il semplice, ma dici alla
Shell di passare l'opzione esattamente come l'hai scritta.
Spero di non avere sparato una cazz***.

> quindi ti rimando il RTFM e aspetto una risposta meno acida e 
> possibilmente ragionata con la tua testa e non risputata da 
> qualcosa che hai sentito tempo fa..
> 
> a tal proposito ripeto la domanda:
> a voi non sembra un comportamento rischioso?
> 
> io ho in mente script che possono fare cose tipo:
> 
> for f in *; do ... ; done;
> 
> e cose simili
> 
> tu dici che fa quel che ci si aspetta...
> io non mi aspetto che nell'espansione il file -rf venga 
> interpretato come un opzione al comando che io lancio!
> 
> e penso che nessuno se lo aspetti!
> te lo aspetti dopo che hai scoperto il comportamento.. ma 
> questo non è "aspettarselo" è "constatarlo"
> 
> mi sta bene che * venga espanso ad una stringa contenente 
> tutti i file...
> il mio discorso è che secondo me sarebbe più "pulito" se si 
> permettesse che \- non venga interpretato come opzione e che 
> nell'espansione venga espanso proprio a \- ogni trattino ad 
> inizio nome file

Una curiosita' su digito in shell:
$rm ./-rf a me funziona perfettamente.
Ovio mi trovo nella dir in cui c'e' il file.
 
> non mi sembra di essere stato scortese ne di aver detto 
> asinate quindi gradirei se tu evitassi di fare altrettanto
> 
> il mio è un dubbio lecito: mi pare che ciò che propongo sopra 
> non sia una cosa assurda (\- ad inizio file) e se non è stato 
> fatto forse c'è un motivo tecnico che io non conosco... voi 
> siete a conoscenza di questo motivo? (se esiste)



Maggiori informazioni sulla lista Linux