Copie de fichiers d'une seule extension - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 04-05-2005 à 19:03:43
find /home/mat/docs/ -type f -name "*.tex" -exec cp '{}' /home/mat/backup \;
Marsh Posté le 04-05-2005 à 21:37:06
Hé ben, j'aurais jamais trouvé ça tout seul :-D Merci ory!
Mais quand je mets ça dans une console, il ne se passe rien :-? MAis il n'y a pas de message d'erreur non plus.
Marsh Posté le 04-05-2005 à 21:47:15
ory a écrit : find /home/mat/docs/ -type f -name "*.tex" -exec cp '{}' /home/mat/backup \; |
La même chose avec zsh:
cp -i /home/mat/docs/**/*.tex /home/mat/backup/ |
Le problème avec ces deux commandes, c'est que tous les fichiers *.tex seront placés à la racine de /home/mat/backup. Si par malheur il y a deux fichiers qui ont le même nom, un des deux sera écrasé (ce qui est plutôt ennuyeux pour une sauvegarde!). D'où le -i pour limiter la casse; mais la situation reste bancale.
Si tu veux aussi copier la hiérarchie des fichiers concernés, il va te falloir jouer un peu du 'cut'
Marsh Posté le 04-05-2005 à 22:29:46
Merci de ta réponse, pillow
Je ne pensais pas que ce serait si compliqué
Comment est-ce que ça se fait que la commande de Ory ne fonctionne pas chez moi? Parce que, effectivement, j'ai plusieurs fichiers portant le même nom dans des répertoires différents
Marsh Posté le 05-05-2005 à 16:50:55
Code :
|
Attention, ça ne marchera pas s'il y a des espaces dans les noms de fichiers ou de répertoires.
Marsh Posté le 05-05-2005 à 17:28:14
Ou, peut être un peu plus simple:
tar -cf /home/mat/backup/backup.tar $(find /home/mat/docs/ -type f -name "*.tex" ) |
L'avantage c'est qu'on peut créer de nouvelles archives avec des noms différents à chaque fois.
On peut aussi ne pas faire d'archive:
cd /home/mat/backup/ |
Mais ça ne marche toujours pas s'il y a des espaces qui trainent.
Ceci par contre:
cd /home/mat/backup/ |
doit marcher. Mais il faut utiliser zsh
Marsh Posté le 06-05-2005 à 08:15:22
Jar Jar a écrit :
|
Pour cela il suffit de changer la variable $IFS
Marsh Posté le 06-05-2005 à 11:12:45
ory a écrit : Pour cela il suffit de changer la variable $IFS |
tu peux expliquer ?
Marsh Posté le 03-05-2005 à 23:15:29
Bonjour,
Je voulais tantôt faire un backup de mes fichiers LaTeX, donc j'ai fait
cp -r /home/mat/docs/*.tex /home/mat/backup/
croyant que ça allait me mettre tous mes fichiers tex dans le dossier backup. Mais tout ce que ça fait, c'est ça:
cp: ne peut évaluer `/home/mat/docs/*.tex': Aucun fichier ou répertoire de ce type
Alors je me demandais comment on pouvait faire pour faire un script qui copierait tous les fichiers du répertoire /home/mat/docs (ainsi que des sous-répertoires du dossier), et qui auraient l'extension .tex, pour les mettre dans un dossier de backup.
Si une astérisque ne marche pas comme "joker" avec la commande cp, y a-t-il un autre caractère à utiliser?
Merci d'avance pour vos réponses :-)