[Risolto] Rimozione di file con GREP

Installazione, configurazione e uso di programmi e strumenti.
denny92
Prode Principiante
Messaggi: 2
Iscrizione: martedì 14 aprile 2020, 17:02
Desktop: ubuntu
Distribuzione: Ubuntu 19.10 x86_64
Sesso: Maschile

[Risolto] Rimozione di file con GREP

Messaggio da denny92 »

Buonasera, sperando di aver postato correttamente e non aver infranto le regole del forum vi chiedo, come mai questo comando non funziona?

Codice: Seleziona tutto

denny@denny:~$ sudo rm $(ls /home | grep .tmp)
E' un banale esercizio per l'università ma non capisco dove sbaglio. Mi viene chiesto di visualizzare i file con estensione .tmp presenti nella mia /home e rimuoverli.
Per svolgere l'esercizio ho creato dei file fittizi all'interno di /home con

Codice: Seleziona tutto

denny@denny:~$ touch prova1.tmp prova2.tmp prova3.tmp | sudo mv prova1.tmp prova2.tmp prova3.tmp /home
Ho verificato che i files fossero presenti con

Codice: Seleziona tutto

denny@denny:~$ ls /home
denny  prova1.tmp  prova2.tmp  prova3.tmp
e anche che il comando

Codice: Seleziona tutto

denny@denny:~$ ls /home | grep .tmp
prova1.tmp
prova2.tmp
prova3.tmp
estrapolasse in effetti i file con estensione .tmp da /home.

A occhio credo che nonostante come comando indipendente funzioni, quest'ultimo non può essere passato come opzione per la remove del primo comando, ma perchè?

[Parole chiave cercate sul forum: {rimozione file grep}]
Ultima modifica di trekfan1 il mercoledì 15 aprile 2020, 7:27, modificato 2 volte in totale.
Motivazione: Per il futuro non mettere il [Risolto] tutto maiuscolo, grazie
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4457
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu Mate 22.04.1 LTS
Sesso: Maschile
Contatti:

Re: Rimozione di file con GREP

Messaggio da UbuNuovo »

A parte che userei find, ma se devi usare ls e grep... per prima cosa utilizzerei una regex così: '\.tmp$', va fatto l'escape del punto ed è bene indicare che la stringa debba finire con tmp
Poi l'errore sta nel fatto che ls /home stampa solo i nomi dei file presenti nella home ma non stampa la directory home/; se esegui il comando dalla home utente, i file non vengono trovati perché sono nella directory /home non in /home/utente
Ti conviene fare:

Codice: Seleziona tutto

cd /home
sudo rm $(ls /home | grep '\.tmp$')
Altrimenti per ls usi:

Codice: Seleziona tutto

ls /home/*.tmp
o se devi usare grep:

Codice: Seleziona tutto

ls /home/*.* | grep '\.tmp$'
Salva l'Ucraina! 🇺🇦
denny92
Prode Principiante
Messaggi: 2
Iscrizione: martedì 14 aprile 2020, 17:02
Desktop: ubuntu
Distribuzione: Ubuntu 19.10 x86_64
Sesso: Maschile

Re: Rimozione di file con GREP

Messaggio da denny92 »

UbuNuovo ha scritto:
martedì 14 aprile 2020, 19:10
A parte che userei find, ma se devi usare ls e grep... per prima cosa utilizzerei una regex così: '\.tmp$', va fatto l'escape del punto ed è bene indicare che la stringa debba finire con tmp
Poi l'errore sta nel fatto che ls /home stampa solo i nomi dei file presenti nella home ma non stampa la directory home/; se esegui il comando dalla home utente, i file non vengono trovati perché sono nella directory /home non in /home/utente
Ti conviene fare:

Codice: Seleziona tutto

cd /home
sudo rm $(ls /home | grep '\.tmp$')
Altrimenti per ls usi:

Codice: Seleziona tutto

ls /home/*.tmp
o se devi usare grep:

Codice: Seleziona tutto

ls /home/*.* | grep '\.tmp$'
Ti ringrazio, ho capito l'errore ed è la cosa che più mi premeva. Faccio tesoro delle alternative che mi hai proposto, purtroppo il testo dell'esercizio era molto preciso riguardo i comandi da usare, ma ho capito quanto mi hai spiegato. Direi che ho risolto il problema!
Avatar utente
trekfan1
Moderatore Globale
Moderatore Globale
Messaggi: 23523
Iscrizione: domenica 21 maggio 2006, 10:51
Desktop: Gnome
Distribuzione: Ubuntu 23.10 e 24.04 (dev)
Sesso: Maschile
Località: Formigine (MO) | Accecante Asceta

Re: [RISOLTO] Rimozione di file con GREP

Messaggio da trekfan1 »

In futuro non mettere il [Risolto] tutto maiuscolo, per questa volta sistemo io
Scrivi risposta

Ritorna a “Applicazioni”

Chi c’è in linea

Visualizzano questa sezione: corradoventu e 15 ospiti