xargs

Git: utiliser "git add" avec une liste de fichiers spécifiques

Quand on souhaite exclure des fichiers lors de l'utilisation de "git add", il est possible d'utiliser un fichier ".gitignore" dans lequel on indique tous les fichiers/dossiers que l'on souhaite exclure.

Très pratique quand la liste des fichiers/dossiers à exclure n'est pas très importante.

Mais comment faire quand c'est l'inverse, un dossier contenant de nombreux fichiers, et seulement quelques fichiers à ajouter à un dépôt git.

L'idéal serait de pouvoir utiliser un fichier ".gitaccept"

Voici une petite astuce qui permet de le faire.

Etiquettes: 

Copier des fichiers résultant d'une recherche avec find

Rechercher tous les fichiers *.jpg présents dans le répertoire ~/images (sous-répertoires inclus) et les copier dans le répertoire imagesJPG.

$ find ~/images -name '*.jpg' -print0 | xargs -I '{}' -0 cp {} ~/imagesJPG/

L'option -print0 de la commande find et -0 de la commande xargs permet de prendre en compte les fichiers comportant des espaces dans leurs noms.

Etiquettes: 

Supprimer le résultat d'une recherche (console)

En utilisant l'option -delete

$ sudo find /mon-repertoire -name mon-document -delete

ou en utilisant l'option -exec et la fonction rm

$ sudo find /mon-repertoire -name mon-document -exec rm {} \;

la chaine de caractère "{}" est remplacée par le résultat de la recherche

ou en combinant les commandes find, xargs et rm

$ find /mon-repertoire -name '*.txt' -print0 | xargs -0 rm -f
$ find /mon-repertoire -name '*.txt' -print0 | xargs -I '{}' -0 rm -f {}