Find e copy avrei bisogno di una mano

Ciao a tutti,
sono un neofita di linux e avrei bisogno di una mano…
dovrei copiare il file file.txt in tante subfolder che si chiamano lib/src contenute all’interno della cartella httpdocs.
ad esempio httpdocs/folder/folder1/lib/src, httodocs/ff/ff1/lib/src ecc
QUlcuno ha qualche idea?

Grazie mille

1 Like

Sì.
Con questo comando

find . | grep -e "/lib/src$"

Puoi listare tutte le sotto cartelle /lib/src. Usando anche xargs puoi copiare il file nelle directory che ti restituisce il comando.

Grazie mille,
ho provato questo comando:

find . | grep -e "/src/lib$" | xargs -p -n 1 cp -v /var/www/vhosts/miofile.txt

ma non funziona…non copia nulla . dove sbaglio?

Forse hai invertito src con lib, oppure non lo vuoi fare interattivamente (-p), o forse non stai premendo invio per confermare il comando detto da xargs

funziona!! grazie mille

Un’altro piccolo problema… devo rinominare multiple sottocartelle che si chiamano miacartella_renamed a miacartella. sto usando il comando

find . - -name 'miacartella_renamed' -exec sh -c 'x="{}"; mv "$x" "$miacartella"' \;

ma non funziona… dove sbaglio?

ho anche provato con il comando echo per eliminare la string _renamed:

 find . - -name 'wordfence_renamed' -exec sh -c 'x="{}"; mv "$x"  $(echo ${x}/_renamed/"$")' \;

ma mi sa che mi sono incasinato con le $ :slight_smile:

alla fine ce l’ho fatta:

 find . - -name 'miofile_renamed' -exec sh -c 'x="{}"; mv "$x"  $(echo "$x" | sed -e "s/miofile_renamed/miofile/g") ' \;
1 Like

Forse per affinità con la programmazione, ma soprattutto direi per maggior leggibilità e flessibilità, a me viene sempre più spontaneo fare queste cose con cicli for.

for folder in */*/lib/src
    do cp -v /var/www/vhosts/miofile.txt $folder
done

Sono d’accordo con @mythsmith però suggerirei di usare "$folder" fra apici doppi, per evitare problemi.

Tool utile: