[Risolto]cancellazione file php e find

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Scrivi risposta
gferrari77
Prode Principiante
Messaggi: 87
Iscrizione: venerdì 22 febbraio 2019, 11:05
Distribuzione: 22.04
Sesso: Maschile

[Risolto]cancellazione file php e find

Messaggio da gferrari77 »

ciao.
vorrei eliminare tutti i file .php da una directory che non si chiamano in tre nomi che conosco.
in pratica se non si chiamano in uno di quei tre nomi e sono .php cancellarli.
si puo fare una withelist (non so come si chiama correttamente)con il comando find?
grazie.
ciao.
Ultima modifica di gferrari77 il sabato 3 giugno 2023, 11:57, modificato 1 volta in totale.
Avatar utente
DoctorStrange
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2872
Iscrizione: mercoledì 14 ottobre 2015, 9:33
Desktop: Gnome3
Distribuzione: Ubuntu 22.04 LTS Jammy Jellyfish
Sesso: Maschile
Località: Roma, Italia

Re: cancellazione file php e find

Messaggio da DoctorStrange »

Se il find di cui parli, è il comando bash, e quindi ti accontenti di uno script bash, è abbastanza semplice. Scrivi in una collection di qualche tipo: array per esempio, la lista dei nomi dei file che ti interessano, e poi fai un semplice ciclo while, e gli passi la lista di tutti i file contenuti nella directory. Se il file non è parte dell'array (la NON appartenenza si indica con il carattere punto esclamativo), allora lo elimini.
gferrari77
Prode Principiante
Messaggi: 87
Iscrizione: venerdì 22 febbraio 2019, 11:05
Distribuzione: 22.04
Sesso: Maschile

Re: cancellazione file php e find

Messaggio da gferrari77 »

Non ho molta conoscenza di script bash ma adesso che vedo basterebbe un eliminazione di tutti i file PHP in una particolare directory che contengono una particolare stringa gli altri file PHP che non contengono quella stringa non li cancella.se si può fare si può vedere prima di cancellare i files la lista dei file che vanno cancellati?
Si può fare senza script bash col find e il grep?
Chiedo ma non sono pratico scusate
gferrari77
Prode Principiante
Messaggi: 87
Iscrizione: venerdì 22 febbraio 2019, 11:05
Distribuzione: 22.04
Sesso: Maschile

Re: cancellazione file php e find

Messaggio da gferrari77 »

ho provato con: grep -r '@include *' ./giga e fa quello che mi serve mi basterebbe cancellare il file se contiene quella stringa.
ciao.
rai
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2848
Iscrizione: domenica 11 maggio 2008, 18:03
Desktop: plasma
Distribuzione: 22.04
Località: Palermo

Re: cancellazione file php e find

Messaggio da rai »

gferrari77 ha scritto:
lunedì 29 maggio 2023, 9:31
ciao.
vorrei eliminare tutti i file .php da una directory che non si chiamano in tre nomi che conosco.
in pratica se non si chiamano in uno di quei tre nomi e sono .php cancellarli.
si puo fare una withelist (non so come si chiama correttamente)con il comando find?
grazie.
ciao.
Prova questo, sostituendo <percorso> con il percorso della cartella contenente i file; dovrebbe elencare tutti i file da cancellare

Codice: Seleziona tutto

find <percorso> -name "*.php" ! -name "*nome1*" ! -name "*nome2*" | -name "*nome3*" -exec ls {} \;
se sei sicuro che funziona, cioè che elenca solo file da cancellare, dovrai ripetere il comando sostituendo -exec ls con -exec rm

EDIT
Forse non ci sarebbe bisogno di scriverlo (ma di questi tempi ho visto alcune ingenuità che non ci si crederebbe):
devi sostituire nome1 nome2 nome3 con i tre nomi che conosci.
gferrari77
Prode Principiante
Messaggi: 87
Iscrizione: venerdì 22 febbraio 2019, 11:05
Distribuzione: 22.04
Sesso: Maschile

Re: cancellazione file php e find

Messaggio da gferrari77 »

Funziona benissimo ed è molto veloce a differenza del grep esiste un qualche modo di utilizzare il grep anche solo per controllare ma anche per capire e imparare io vorrei cercare tra tutti i PHP i PHP che contengono una stringa particolare e come da tuo esempio elencarli per vedere e poi con sicurezza cancellarli.la cartella tiene 90 GB col grep senza PHP è impossibile.magari pensavo posso redigere il tuo comando su un file per trovare tutti i PHP e poi fare il grep solo su quelli.intanto grazie.non so ancora come cancellare un file se contiene una data stringa col grep.ciao
gferrari77
Prode Principiante
Messaggi: 87
Iscrizione: venerdì 22 febbraio 2019, 11:05
Distribuzione: 22.04
Sesso: Maschile

Re: cancellazione file php e find

Messaggio da gferrari77 »

Non so come ringraziarti ho risolto grazie mille .se hai da darmi le altre informazioni se no me le cercherò con calma su Google.rispondimi per piacere che so se mettere il risolto.
rai
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2848
Iscrizione: domenica 11 maggio 2008, 18:03
Desktop: plasma
Distribuzione: 22.04
Località: Palermo

Re: cancellazione file php e find

Messaggio da rai »

gferrari77 ha scritto:
lunedì 29 maggio 2023, 12:53
Funziona benissimo ed è molto veloce a differenza del grep esiste un qualche modo di utilizzare il grep anche solo per controllare ma anche per capire e imparare io vorrei cercare tra tutti i PHP i PHP che contengono una stringa particolare e come da tuo esempio elencarli per vedere e poi con sicurezza cancellarli.la cartella tiene 90 GB col grep senza PHP è impossibile.magari pensavo posso redigere il tuo comando su un file per trovare tutti i PHP e poi fare il grep solo su quelli.intanto grazie.non so ancora come cancellare un file se contiene una data stringa col grep.ciao
Perfetto, dato che ha funzionato poi mettere il tag [Risolto] all'inizio del titolo del primo post della discussione.
Per l'altra questione, sicuramente si può fare. Apri un'altra discussione chiarendo i termini della faccenda e vediamo come si fa
:ciao:
Lucio C
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 371
Iscrizione: venerdì 10 dicembre 2021, 18:33
Desktop: fvwm
Distribuzione: (X)Ubuntu20@home; openSUSE42.3@work
Sesso: Maschile
Località: Paneropoli

Re: cancellazione file php e find

Messaggio da Lucio C »

DoctorStrange ha scritto:
lunedì 29 maggio 2023, 9:58
Se il find di cui parli, è il comando bash
Sospetto una (per me) strana o curiosa confusione tra i concetti di shell e comandi. Uno shell e' l'ambiente in cui si lavora, o in cui si scrive uno script (che puo' essere scritto in un altro shell o addirittura in un altro inteprete, che so awk o perl). Un comando e' o un file eseguibile (che puo' essere un binario o uno script con permesso di esecuzione) o eventualmente un alias a livello di shell, o in rari casi un builtin dello shell.

Ora che io sappia "find" e' (sempre?) l'eseguibile /usr/bin/find (verificato con "which find" in csh e bash, mentre p.es. "which echo" e' un builtin in csh)
The reasonable man adapts himself to the world: the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man. (G.B. Shaw)
rai
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2848
Iscrizione: domenica 11 maggio 2008, 18:03
Desktop: plasma
Distribuzione: 22.04
Località: Palermo

Re: cancellazione file php e find

Messaggio da rai »

Lucio C ha scritto:
lunedì 29 maggio 2023, 13:41
DoctorStrange ha scritto:
lunedì 29 maggio 2023, 9:58
Se il find di cui parli, è il comando bash
Sospetto una (per me) strana o curiosa confusione tra i concetti di shell e comandi. Uno shell e' l'ambiente in cui si lavora, o in cui si scrive uno script (che puo' essere scritto in un altro shell o addirittura in un altro inteprete, che so awk o perl). Un comando e' o un file eseguibile (che puo' essere un binario o uno script con permesso di esecuzione) o eventualmente un alias a livello di shell, o in rari casi un builtin dello shell.

Ora che io sappia "find" e' (sempre?) l'eseguibile /usr/bin/find (verificato con "which find" in csh e bash, mentre p.es. "which echo" e' un builtin in csh)
Ok, tutto vero. Ma sei sicuro che se in csh dai il comando which echo ottieni qualcosa di diverso da /usr/bin/echo ? questo dovrebbe essere il comportamento atteso di which anche se echo è un builtin di csh.
Spoiler: anche in bash echo è un builtin

Codice: Seleziona tutto

$ echo $SHELL
/bin/bash
$ type -t echo
builtin
$ which echo
/usr/bin/echo
$ 

Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 8 ospiti