Fedora Online Forum

Il forum della comunità italiana di Fedora

#1 29-09-2017 14:27:10

antowen
Collaboratore
Da Ostrava
Registrato: 21-03-2010
Messaggi: 1'255
Sito web

Estrarre la lista su txt di tutti i war e jar files

Ciao a tutti,
Potete suggerirmi un comando che cerchi tutti jar e war files presenti nel sistema?

L'ideale sarebbe una lista su txt file da salvare sulla mia home dir, tenendo conto che non conosco il path dove questi files potrebbero essere e che locate non e' installato in molte macchine.

Grazie  smile


Antonio G. Fedora 28 Mate
antowen.com

Non in linea

#2 29-09-2017 20:53:27

frafra
Amministratore
Da Trondheim (Norvegia)
Registrato: 14-05-2014
Messaggi: 2'307
Sito web

Re: Estrarre la lista su txt di tutti i war e jar files

Questo potrebbe andare bene?

# find / -type f -name *.jar -or -name *.war 2>/dev/null

Non in linea

#3 04-10-2017 13:34:22

antowen
Collaboratore
Da Ostrava
Registrato: 21-03-2010
Messaggi: 1'255
Sito web

Re: Estrarre la lista su txt di tutti i war e jar files

Ciao frafra, grazie del suggerimento, ho optato in questo modo sulla base del tuo

for i in `find / -type f -name *.jar -or -name *.war`; do 
  echo $(du -m $i|awk '{print $1}') $(dirname $i) $(basename $i)> :)war_jar_list.txt
 
done

mi da un file di testo con il path e il file, grazie ancora  smile


Antonio G. Fedora 28 Mate
antowen.com

Non in linea

#4 04-10-2017 14:47:19

frafra
Amministratore
Da Trondheim (Norvegia)
Registrato: 14-05-2014
Messaggi: 2'307
Sito web

Re: Estrarre la lista su txt di tutti i war e jar files

Di nulla. Tieni conto che se usi ">" vai a sovrascrivere il file, serve ">>" per l'append.

Personalmente non mi piace mischiare i cicli for con find. O uso for+globstar o solo find con l'opzione exec oppure con xargs.

Quello che hai fatto tu si può fare facilmente usando esclusivamente find:

find / -type f \( -name *.jar -or -name *.war \) -printf '%s %p\n' > jar_war_list.txt

In Bash 4 puro diventa (scritto in maniera un po' compatta):

(shopt -s globstar #dotglob per includere anche file/directory nascoste
for f in /{,**/}*.{j,w}ar; do
  [ -f $f ] && du -m "$f"
done) > jar_war_list.txt

Se poi vuoi cercare tra i risultati il file che ti interessa, non serve fare magheggi con awk/dirname/basename, puoi fare qualcosa di più semplice, tipo:

grep "file.jar$" jar_war_list.txt

Non in linea

#5 04-10-2017 17:53:13

antowen
Collaboratore
Da Ostrava
Registrato: 21-03-2010
Messaggi: 1'255
Sito web

Re: Estrarre la lista su txt di tutti i war e jar files

frafra ha scritto:

Di nulla. Tieni conto che se usi ">" vai a sovrascrivere il file, serve ">>" per l'append.

Personalmente non mi piace mischiare i cicli for con find. O uso for+globstar o solo find con l'opzione exec oppure con xargs.

Quello che hai fatto tu si può fare facilmente usando esclusivamente find:

find / -type f \( -name *.jar -or -name *.war \) -printf '%s %p\n' > jar_war_list.txt

In Bash 4 puro diventa (scritto in maniera un po' compatta):

(shopt -s globstar #dotglob per includere anche file/directory nascoste
for f in /{,**/}*.{j,w}ar; do
  [ -f $f ] && du -m "$f"
done) > jar_war_list.txt

Se poi vuoi cercare tra i risultati il file che ti interessa, non serve fare magheggi con awk/dirname/basename, puoi fare qualcosa di più semplice, tipo:

grep "file.jar$" jar_war_list.txt

Ciao frafra,
Grazie del suggerimento, non sono molto esperto di scripting purtroppo,
Riguardo a: Di nulla. Tieni conto che se usi ">" vai a sovrascrivere il file, serve ">>" per l'append.

Intendi che ho sovrascritto i file che ho cercato? o il file di output?


Antonio G. Fedora 28 Mate
antowen.com

Non in linea

#6 04-10-2017 18:16:27

frafra
Amministratore
Da Trondheim (Norvegia)
Registrato: 14-05-2014
Messaggi: 2'307
Sito web

Re: Estrarre la lista su txt di tutti i war e jar files

Figurati.

Intendo dire che se in un ciclo for lanci un comando che scrive su un file usando ">", questo file viene riscritto ad ogni ciclo:

$ for i in {1..3}; do echo $i > test.txt; done
$ cat test.txt 
3

Non in linea

#7 04-10-2017 18:22:31

antowen
Collaboratore
Da Ostrava
Registrato: 21-03-2010
Messaggi: 1'255
Sito web

Re: Estrarre la lista su txt di tutti i war e jar files

Guarda considera che era solo per cercare velocemente files per un collega che non ha accesso  ad alcune macchine che gestisco.

Domani voglio riprovare col tuo

(shopt -s globstar #dotglob per includere anche file/directory nascoste
for f in /{,**/}*.{j,w}ar; do
  [ -f $f ] && du -m "$f"
done) > jar_war_list.txt

Giusto per essere sicuro di aver estratto tutto

Grazie ancora  smile


Antonio G. Fedora 28 Mate
antowen.com

Non in linea

#8 04-10-2017 18:27:05

frafra
Amministratore
Da Trondheim (Norvegia)
Registrato: 14-05-2014
Messaggi: 2'307
Sito web

Re: Estrarre la lista su txt di tutti i war e jar files

Sì, sì, io te le dico un po' tutte, perché l'argomento mi interessa.

Secondo me lo script che hai incollato contiene un refuso, anche perché non viene eseguito correttamente. Probabilmente al posto di "> smile" ci stava ">>".

Non in linea

Piè di pagina