Pagina 1 di 1

Evitare cancellazioni rovinose [RISOLTO]

Inviato: mer 13 gen 2010, 16:29
da Burroughs
Qualche giorno fa, preso dalla fretta, ho dato un rm -r di troppo e così facendo ho cancellato una directory del mio repository.
Poco male, ho delle copie di backup sparse qua e là fra i miei computer.
Volendone sapere di più, soprattutto per evitare in futuro simili boiate, mi sono imbattuto in questo sito, in cui, fra l'altro, si afferma:
Sandro Tosi ha scritto:Un trucchetto per evitare di effettuare un ``rm'' in una directory
sbagliata e` quello di creare un file ``-i'' nelle directory piu`
importanti.
Mi sapete spiegare in cosa consiste questo metodo?
Ho provato a creare un semplice file di testo, chiamato -i, in una directory di prova, ma questo non è servito ad impedire che poi un banale rm -r me la cancellasse.

Burroughs.

Re: Evitare cancellazioni rovinose

Inviato: mer 13 gen 2010, 16:37
da Mario Vanoni
Burroughs ha scritto:Qualche giorno fa, preso dalla fretta, ho dato un rm -r di troppo e così facendo ho cancellato una directory del mio repository.
Poco male, ho delle copie di backup sparse qua e là fra i miei computer.
Volendone sapere di più, soprattutto per evitare in futuro simili boiate, mi sono imbattuto in questo sito, in cui, fra l'altro, si afferma:
Sandro Tosi ha scritto:Un trucchetto per evitare di effettuare un ``rm'' in una directory
sbagliata e` quello di creare un file ``-i'' nelle directory piu`
importanti.
Mi sapete spiegare in cosa consiste questo metodo?
Ho provato a creare un semplice file di testo, chiamato -i, in una directory di prova, ma questo non è servito ad impedire che poi un banale rm -r me la cancellasse.

Burroughs.
Leggi la man page di rm(1)!

Con
cd dir
rm -irv *
ti chiede in modo interattivo se vuoi cancellare o no ogni singolo argomento.

Re: Evitare cancellazioni rovinose

Inviato: mer 13 gen 2010, 16:37
da 414N
Io metterei un bel alias apposito in ~/.bashrc, tipo

Codice: Seleziona tutto

alias rm='rm -i'
Magari è più utile nella home di root (/root) che nella home dell'utente non privilegiato.

Re: Evitare cancellazioni rovinose

Inviato: mer 13 gen 2010, 16:56
da targzeta
Si, anche io penso che l'idea era quella di passare indirettamente l'opzione '-i' a rm. Solo che è na fesseria di soluzione! Già l'alias di 414N è più intelligente.

Altrimenti potresti crearti un "cestino" in stile windows. Scrivi un piccolo scriptino che sposta i file in directory prestabilite, preferibilmente nello stesso filesystem, e poi crei un alias a rm per questo scriptino. In questo modo invece di cancellare i file, li sposti. Ovviamente puoi anche raffinare lo script per
  • individuare il filesystem corrente
  • creare se necessario la directory trash
  • avvisare un utente che il cestino è pieno (ergo il filesystem si sta riempiendo). Magari che te lo dica prima di iniziare l'operazione, non come windows che solo dopo aver perso 10 minuti ti dice che non è possibile spostare il file perchè manca lo spazio sufficiente.
  • rinominare i file spostati in modo che sia facile ripristinarli, ad esempio rinominandoli con l'intero path, sostituendo '/' in '_'. Oppure meglio ancora se ci metti un file indice che ti dica per ogni file, il suo path originale.
N.B.Non sottovalutare la questione di spostare i file sullo stesso filesystem. Fare un mv da un filesystem all'altro impiega molto tempo perchè deve effettivamente spostare i file, mentre spostare dei file su uno stesso filesystem è un operazione piuttosto rapida, come la cancellazione, in entrambi i casi si deve solo modificare le informazioni sugli inode.

Emanuele

Offtopic: @414N: non ho capito se la puntualizzazione iniziale era riferita a Mario. Mi sembra che abbiate detto la stessa cosa, no?

Re: Evitare cancellazioni rovinose

Inviato: mer 13 gen 2010, 16:58
da kreen
Ciao, se i files sono fissi, tipo eseguibili, pacchetti etc,
valuta anche l'uso di chattr +i , vantaggi e svantaggi che comporta.

Re: Evitare cancellazioni rovinose

Inviato: mer 13 gen 2010, 17:25
da 414N
spina ha scritto:Offtopic: @414N: non ho capito se la puntualizzazione iniziale era riferita a Mario. Mi sembra che abbiate detto la stessa cosa, no?
Offtopic: Sì sì, è la stessa cosa che ha detto anche Mario. Abbiamo postato quasi contemporaneamente e non ho corretto quanto avevo scritto prima di leggere la risposta di Mario. Mò aggiusto

Re: Evitare cancellazioni rovinose

Inviato: mer 13 gen 2010, 17:28
da Burroughs
Ragazzi, vi ringrazio per i suggerimenti che mi avete dato.
La soluzione proposta da 414N, cioè quella dell'alias, mi stuzzica di più, però a me interesserebbe, più che altro, impostare un alias che impedisca l'esecuzione in modalità non interattiva di rm -r, mentre per il comando in sé la modalità non interattiva va più che bene.
Insomma, per essere chiari: ok l'avvertimento se cerco di cancellare una directory intera, no per il file singolo.

Burroughs.

@mario: ovviamente conosco l'opzione -i, se applicata al comando in questione.
Quello che non mi spiegavo (e non mi spiego tuttora) è quel che il buon Sandro Tosi vuol dire quando afferma che, per evitare cancellazioni accidentali, sarebbe buona norma creare un file ``-i'' nelle directory più importanti.

Re: Evitare cancellazioni rovinose

Inviato: mer 13 gen 2010, 17:56
da Mario Vanoni
Burroughs ha scritto:Ragazzi, vi ringrazio per i suggerimenti che mi avete dato.
La soluzione proposta da 414N, cioè quella dell'alias, mi stuzzica di più, però a me interesserebbe, più che altro, impostare un alias che impedisca l'esecuzione in modalità non interattiva di rm -r, mentre per il comando in sé la modalità non interattiva va più che bene.
Insomma, per essere chiari: ok l'avvertimento se cerco di cancellare una directory intera, no per il file singolo.

Burroughs.

@mario: ovviamente conosco l'opzione -i, se applicata al comando in questione.
Quello che non mi spiegavo (e non mi spiego tuttora) è quel che il buon Sandro Tosi vuol dire quando afferma che, per evitare cancellazioni accidentali, sarebbe buona norma creare un file ``-i'' nelle directory più importanti.
Un trucchetto per evitare di effettuare un ``rm'' in una directory
sbagliata e` quello di creare un file ``-i'' nelle directory piu`
importanti.
In oltre venti anni di UNIX/Linux mai sentito di un trucco simile!
Quale Super-User (root) con rm(1) cancelli _tutto_!

Re: Evitare cancellazioni rovinose

Inviato: mer 13 gen 2010, 18:07
da targzeta
Burroughs ha scritto:...@mario: ovviamente conosco l'opzione -i, se applicata al comando in questione.
Quello che non mi spiegavo (e non mi spiego tuttora) è quel che il buon Sandro Tosi vuol dire quando afferma che, per evitare cancellazioni accidentali, sarebbe buona norma creare un file ``-i'' nelle directory più importanti.
Bhé, allora vuol dire che ci siamo spiegati male in tre :).

Se crei un file chiamato '-i', quando esegui 'rm *' esegui 'rm -i *' questo perchè implicitamente passi '-i' a rm. Ma, come ho già detto prima, secondo me è una fesseria. Anche perchè se esegui 'rm -r nomedir', anche se la directory contiene un file '-i' non succede nulla e la directory viene completamente eliminata.

Emanuele

Re: Evitare cancellazioni rovinose

Inviato: gio 14 gen 2010, 11:48
da 414N
Burroughs ha scritto:Ragazzi, vi ringrazio per i suggerimenti che mi avete dato.
La soluzione proposta da 414N, cioè quella dell'alias, mi stuzzica di più, però a me interesserebbe, più che altro, impostare un alias che impedisca l'esecuzione in modalità non interattiva di rm -r, mentre per il comando in sé la modalità non interattiva va più che bene.
Insomma, per essere chiari: ok l'avvertimento se cerco di cancellare una directory intera, no per il file singolo.

Codice: Seleziona tutto

alias rmr='rm -ri'

Re: Evitare cancellazioni rovinose

Inviato: gio 14 gen 2010, 12:11
da Burroughs
414N ha scritto:
Burroughs ha scritto:Ragazzi, vi ringrazio per i suggerimenti che mi avete dato.
La soluzione proposta da 414N, cioè quella dell'alias, mi stuzzica di più, però a me interesserebbe, più che altro, impostare un alias che impedisca l'esecuzione in modalità non interattiva di rm -r, mentre per il comando in sé la modalità non interattiva va più che bene.
Insomma, per essere chiari: ok l'avvertimento se cerco di cancellare una directory intera, no per il file singolo.

Codice: Seleziona tutto

alias rmr='rm -ri'
Scusa, ma così (ho già provato) mi viene cannata la modalità interattiva tanto per la cancellazione file quanto per la cancellazione directory... :oops:
Any ideas?

Burroughs.

Re: Evitare cancellazioni rovinose

Inviato: gio 14 gen 2010, 12:37
da 414N
Burroughs ha scritto:Scusa, ma così (ho già provato) mi viene cannata la modalità interattiva tanto per la cancellazione file quanto per la cancellazione directory... :oops:
Any ideas?
Quello che ti ho messo nel mio post precedente sarebbe un alias da usare quando devi cancellare ricorsivamente delle directory al posto del comando rm -r, in modo che ti venga chiesta conferma prima dell'eliminazione di ogni file.
Non capisco cosa intendi con "cannata": non so da te, ma qui da me vuol dire tolta/disabilitata. Io però l'opzione -i l'ho messa....

Re: Evitare cancellazioni rovinose

Inviato: gio 14 gen 2010, 15:35
da Burroughs
414N ha scritto:
Burroughs ha scritto:Scusa, ma così (ho già provato) mi viene cannata la modalità interattiva tanto per la cancellazione file quanto per la cancellazione directory... :oops:
Any ideas?
Quello che ti ho messo nel mio post precedente sarebbe un alias da usare quando devi cancellare ricorsivamente delle directory al posto del comando rm -r, in modo che ti venga chiesta conferma prima dell'eliminazione di ogni file.
Non capisco cosa intendi con "cannata": non so da te, ma qui da me vuol dire tolta/disabilitata. Io però l'opzione -i l'ho messa....
Ti chiedo scusa, nella fretta non avevo interpretato bene l'alias che mi hai suggerito.
Grazie ancora per l'aiuto,

Burroughs.

Ps: riguardo alla forma verbale di cui sopra, non è propriamente aulica benché il lemma cannare lo si rinvenga anche sulla Treccani.
Utilizzandola, non intendevo essere ironico, come spero non abbia voluto essere tu con la tua risposta.

Re: Evitare cancellazioni rovinose

Inviato: gio 14 gen 2010, 17:17
da 414N
Burroughs ha scritto:Ps: riguardo alla forma verbale di cui sopra, non è propriamente aulica benché il lemma cannare lo si rinvenga anche sulla Treccani.
Utilizzandola, non intendevo essere ironico, come spero non abbia voluto essere tu con la tua risposta.
Assolutamente: volevo accertarmi che attribuissimo lo stesso significato al termine cannare dopo aver letto il tuo post di risposta.