web-dev-qa-db-fra.com

rechercher et copier un fichier à l'aide de Bash

N'importe qui a un autre moyen de rechercher et de copier des fichiers en bash que:

find . -ctime -15 | awk '{print "cp " $1 " ../otherfolder/"}' | sh

J'aime cette façon parce qu'elle est flexible, car je construis ma commande (peut par n'importe quelle commande) et l'exécute après.

Existe-t-il d'autres moyens de rationaliser les commandes dans une liste de fichiers?

Merci

33
Wadih M.

Je recommanderais d'utiliser find-exec option:

find . -ctime 15 -exec cp {} ../otherfolder \;

Comme toujours, consultez la page de manuel pour de meilleurs résultats.

76
asveikau

J'utilise habituellement celui-ci:

find . -ctime -15 -exec cp {} ../otherfolder/ \;
8
tangens

Si votre cp est GNU:

find . -ctime 15 -print0 | xargs -0 cp --target-directory=../otherfolder
8
Idelic

Vous pouvez le faire avec xargs:

$ find . -ctime 15 -print0 | xargs -0 -I{} cp {} ../otherfolder

Voir aussi tilitaire grep dans le script Shell .

5
Andrey Vlasovskikh

Utilisez-le pour la copie et bien d'autres choses:

for f in $(find /apps -type f -name 'foo'); do cp ${f} ${f}.bak; cmd2; cmd3; done;
1
hardihood07