J’essaie de déplacer certains fichiers .ipynb
d’un répertoire vers un autre en utilisant cette commande:
find . -name "*failed.ipynb" -print0 | xargs -0 tar cvf "-" | (cd ./fails ; tar xfp "-")
La commande fonctionne correctement sous OS X et CentOS, mais lorsqu’elle est exécutée sur Travis CI sur une machine Ubuntu, elle échoue là où il y a des espaces dans les noms de fichiers.
Je pensais que les options -print0
et -0
devraient traiter de ceci, y a-t-il autre chose que je fais mal?
EDIT La sortie ressemble à ceci:
$ source ./scripts/runipy.sh Processing science/Transients/Followup Observatories.ipynb science/Transients/Followup Observatories.ipynb failed. The following notebooks failed tar: ./science/Transients/Followup: Cannot stat: No such file or directory tar: Observatories.ipynb-failed.ipynb: Cannot stat: No such file or directory
C’est un échec où un fichier .ipynb
a un espace dans le nom de fichier.
Merci
Pouvez-vous utiliser cpio
place? Il lit les noms de fichiers de stdio, donc il n’y a pas de problèmes avec les espaces. (Bien qu’il puisse y avoir de nouvelles lignes, auquel cas il y a l’option -0
.)
find . -name "*failed.ipynb" | cpio -pd ./fails