[quote=frafra]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?