Hoe kun je onder Linux verschillende bestanden onder verschillende mappen kopiëren?

Laten we zeggen dat we bestanden hebben

   a/xxx-data.html
   b/c/xxx-data.html
   d/xxx-data.html

En we willen een kopie maken van elk bestand onder dezelfde map maar met een ander naampatroon, zoals dit

   a/yyy-data.html
   b/c/yyy-data.html
   d/yyy-data.html

Ik ben gewoon nieuwsgierig, kunnen we dit doen door 'find', 'xargs' en 'awk' te combineren?

0

2 antwoord

Dit is gewoon persoonlijke voorkeur, maar wat ik gebruik is:

find | while read x; do y=`echo $x | awk '{ ... }'`; cp $x $y; done

Natuurlijk zoek ik meestal naar een aantal specifieke bestanden en gebruik ik over het algemeen geen awk voor eenvoudige transformaties.

0
toegevoegd

Er is geen behoefte aan een van deze programma's. Net

for file in **/xxx*.html; cp $file ${file/xxx/yyy}

is genoeg in zsh. Het commando voor bash zou behoorlijk op elkaar moeten lijken.

HTH Chris

0
toegevoegd