Evitare cancellazioni rovinose [RISOLTO]

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
Burroughs
Linux 4.x
Linux 4.x
Messaggi: 1076
Iscritto il: mer 15 dic 2004, 0:00
Nome Cognome: Andrea Lutri
Kernel: 3.16.0
Desktop: KDE SC 4.13.3
Distribuzione: Arch Linux
Località: Glasgow
Contatta:

Evitare cancellazioni rovinose [RISOLTO]

Messaggio 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.
Ultima modifica di Burroughs il gio 14 gen 2010, 15:36, modificato 1 volta in totale.
"Two things are infinite: the universe and human stupidity; and I'm not sure about the universe" (Albert Einstein)

Mario Vanoni
Iper Master
Iper Master
Messaggi: 3174
Iscritto il: lun 3 set 2007, 21:20
Nome Cognome: Mario Vanoni
Slackware: 12.2
Kernel: 3.0.4 statico
Desktop: fluxbox/seamonkey
Località: Cuasso al Monte (VA)

Re: Evitare cancellazioni rovinose

Messaggio 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.

Avatar utente
414N
Iper Master
Iper Master
Messaggi: 2924
Iscritto il: mer 13 feb 2008, 16:19
Slackware: 15.0
Kernel: 5.15.19
Desktop: KDE5
Località: Bulagna
Contatta:

Re: Evitare cancellazioni rovinose

Messaggio 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.
Ultima modifica di 414N il mer 13 gen 2010, 17:25, modificato 1 volta in totale.

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6643
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: Evitare cancellazioni rovinose

Messaggio 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?
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
kreen
Linux 2.x
Linux 2.x
Messaggi: 228
Iscritto il: mer 1 feb 2006, 18:32
Slackware: 12.0
Kernel: 2.6.21.5-smp
Desktop: KDE
Località: Verona

Re: Evitare cancellazioni rovinose

Messaggio da kreen »

Ciao, se i files sono fissi, tipo eseguibili, pacchetti etc,
valuta anche l'uso di chattr +i , vantaggi e svantaggi che comporta.

Avatar utente
414N
Iper Master
Iper Master
Messaggi: 2924
Iscritto il: mer 13 feb 2008, 16:19
Slackware: 15.0
Kernel: 5.15.19
Desktop: KDE5
Località: Bulagna
Contatta:

Re: Evitare cancellazioni rovinose

Messaggio 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

Avatar utente
Burroughs
Linux 4.x
Linux 4.x
Messaggi: 1076
Iscritto il: mer 15 dic 2004, 0:00
Nome Cognome: Andrea Lutri
Kernel: 3.16.0
Desktop: KDE SC 4.13.3
Distribuzione: Arch Linux
Località: Glasgow
Contatta:

Re: Evitare cancellazioni rovinose

Messaggio 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.
"Two things are infinite: the universe and human stupidity; and I'm not sure about the universe" (Albert Einstein)

Mario Vanoni
Iper Master
Iper Master
Messaggi: 3174
Iscritto il: lun 3 set 2007, 21:20
Nome Cognome: Mario Vanoni
Slackware: 12.2
Kernel: 3.0.4 statico
Desktop: fluxbox/seamonkey
Località: Cuasso al Monte (VA)

Re: Evitare cancellazioni rovinose

Messaggio 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_!

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6643
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: Evitare cancellazioni rovinose

Messaggio 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
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
414N
Iper Master
Iper Master
Messaggi: 2924
Iscritto il: mer 13 feb 2008, 16:19
Slackware: 15.0
Kernel: 5.15.19
Desktop: KDE5
Località: Bulagna
Contatta:

Re: Evitare cancellazioni rovinose

Messaggio 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'

Avatar utente
Burroughs
Linux 4.x
Linux 4.x
Messaggi: 1076
Iscritto il: mer 15 dic 2004, 0:00
Nome Cognome: Andrea Lutri
Kernel: 3.16.0
Desktop: KDE SC 4.13.3
Distribuzione: Arch Linux
Località: Glasgow
Contatta:

Re: Evitare cancellazioni rovinose

Messaggio 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.
"Two things are infinite: the universe and human stupidity; and I'm not sure about the universe" (Albert Einstein)

Avatar utente
414N
Iper Master
Iper Master
Messaggi: 2924
Iscritto il: mer 13 feb 2008, 16:19
Slackware: 15.0
Kernel: 5.15.19
Desktop: KDE5
Località: Bulagna
Contatta:

Re: Evitare cancellazioni rovinose

Messaggio 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....

Avatar utente
Burroughs
Linux 4.x
Linux 4.x
Messaggi: 1076
Iscritto il: mer 15 dic 2004, 0:00
Nome Cognome: Andrea Lutri
Kernel: 3.16.0
Desktop: KDE SC 4.13.3
Distribuzione: Arch Linux
Località: Glasgow
Contatta:

Re: Evitare cancellazioni rovinose

Messaggio 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.
"Two things are infinite: the universe and human stupidity; and I'm not sure about the universe" (Albert Einstein)

Avatar utente
414N
Iper Master
Iper Master
Messaggi: 2924
Iscritto il: mer 13 feb 2008, 16:19
Slackware: 15.0
Kernel: 5.15.19
Desktop: KDE5
Località: Bulagna
Contatta:

Re: Evitare cancellazioni rovinose

Messaggio 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.

Rispondi