Buongiorno, ho una directory così composta: DIR1 DIR2 DIR3 file1 file2 file3

Quale sintassi devo usare con rm per cancellare tutti i files tranne quello più recente e lasciare intatte le directory?

Grazie

chiesto 17 Nov '15, 08:26

orbscan1's gravatar image

orbscan1
8221625

Non ero al corrente dei precedenti; commuto la risposta in commento. Se i files hanno tutti lo stesso nome, la stessa estensione, vengono distinti solo da un numero progressivo, e tu non conosci il valore assunto dal numero associato al file più recente, con i comandi "rm" la vedo dura; forse la cosa più immediata sarebbe quella di entrare nelle directory, vedere il numero e cancellare tutti i files con numero diverso. Se invece conosci il valore del numero associato al file che vuoi conservare, naturalmente non serve entrare nelle directory.
Le opzioni del comando rm ti consentono di scegliere la cancellazione di un gruppo di files con determinate caratteristiche nel nome.
Per prendere visione del funzionamento del comando e delle sue opzioni, è sufficiente aprire una finestra di terminale e digitare:"man rm". Ma comunque questo non mi sembra un problema che riguarda in maniera specifica Ubuntu, la stessa cosa avverrebbe anche con Windows.

(17 Nov '15, 09:00) enzoge enzoge's gravatar image

Se puoi individuare una stringa iniziale comune per i file, per esempio "file" come nel testo della domanda, in modo da distinguerli dalle directory, allora il comando seguente dovrebbe fare quello che chiedi:

echo rm $(ls -rt file* | head -n -1)

se l'elenco dei file da cancellare è OK, allora ripetere il comando senza l'echo iniziale.
Riferendomi alla tua precedente domanda, questo comando diventa:

rm $(ls -rt /home/carletto/ABCD.* | head -n -1)

Si presuppone che non ci siano spazi (né newline) nei nomi dei file, altrimenti bisognerebbe prendere qualche precauzione che renderebbe il comando più complicato.

coll. permanente

ha risposto 17 Nov '15, 09:02

enzotib's gravatar image

enzotib ♦♦
14.0k112186

modificato 18 Nov '15, 20:46

@enzotib: forse capisco male ma dal mio punto di vista, credo che se il numero è nella parte finale del file e non è un'estensione, sarebbe meglio togliere il punto che precede l'asterisco.
P.s. affermo quanto sopra sulla base di come vengono elencati nella domanda i nomi dei files.

(17 Nov '15, 09:37) enzoge enzoge's gravatar image

Bravissimo enzotib! Funziona perfettamente! Grazie!

(17 Nov '15, 11:33) orbscan1 orbscan1's gravatar image

@orbscan1: non mi sembra che possa funzionare con il nome dei file senza punto, come li hai esposti in domanda. Perché il tutto possa evitare confusione ad altri con lo stesso problema, suggerisco di correggerli in domanda.

(17 Nov '15, 11:44) enzoge enzoge's gravatar image

@ilgallinetta, lo schema è ABCD. ABCD.20151114_N e matcha perfettamente con ABCD.*
non vedo il problema.

(17 Nov '15, 14:36) enzotib ♦♦ enzotib's gravatar image

@enzotib: il problema lo vedo nel fatto che con la tipologia di nomi in domanda (senza punto di estensione), non funziona. Penso sarebbe bene mettere un'esempio di nomi più giusto.

(17 Nov '15, 14:58) enzoge enzoge's gravatar image
1

@ilgallinetta: ho capito cosa intendi, ho cambiato la mia risposta, credo che ora non ci siano più ambiguità.

(17 Nov '15, 15:26) enzotib ♦♦ enzotib's gravatar image
La tua risposta
abilita/disabilita anteprima

Segui questa domanda

Via email:

Una volta eseguito l'accesso potrai iscriverti a tutti gli aggiornamenti qui

Via RSS:

Risposte

Risposte e commenti

Basi di markdown

  • *corsivo* o __corsivo__
  • **grassetto** o __grassetto__
  • collegamento:[testo](http://url.com/ "titolo")
  • immagine?![alt testo](/path/img.jpg "titolo")
  • elenco numerato: 1. Foo 2. Bar
  • per aggiungere un'interruzione di riga, aggiungi due spazi a fine riga e premi «Invio»
  • è supportato anche semplice HTML

Tag:

×8

domanda posta: 17 Nov '15, 08:26

domanda visualizzata: 626 volte

ultimo aggiornamento: 18 Nov '15, 20:46

Chiedi è un servizio di supporto gestito da Ubuntu-it. Contattaci!

powered by OSQAPostgreSQL database
Ubuntu e Canonical sono marchi registrati da Canonical Ltd.