Bonjour !
Oui oui cela fait plusieurs années que je suis sous linux et voila que j'ai une question de debutant :-)
comment peut-on faire une copie de tout les fichiers .* d'un repertoire vers un autre repertoire
exemple cp /home/toto/.* /home/dupond
mais cette commande ne marche pas car elle remonte dans l'arborescence des fichiers (/home)
Et puis temps qu'on y est comment on fait pour supprimer /home/toto/.* car ca marche pas non plus
Merci
# find ou for ... au choix
Posté par JJD . Évalué à 1.
Un première possibilité est for :
for f in /home/toto/.[^.]* ; do cp -r "$f" /home/dupond/ ; done
Deuxième possibilité, avec find :find /home/toto/ -maxdepth 1 -name ".?*" -exec cp -r \{\} /home/dupond/ \;
La boucle for est peut être plus lisible.L'intérêt de find est qu'il permet facilement de se limiter aux fichiers, en excluant donc les répertoires, si on rajoute l'option "-type f".
J'exécute cp avec l'option -r afin de pouvoir copier également les répertoires.
J'ai pas vraiment testé, mais ça devrait à peu près fonctionner (se méfier si des fichiers ont des noms avec des espaces).
JJD
[^] # Re: find ou for ... au choix
Posté par M . Évalué à 4.
cp peut prendre plus de 2 parametres
[^] # Re: find ou for ... au choix
Posté par JJD . Évalué à 2.
Bon sèrieusement, j'ai commencé ma journée à 7heures et donc après 18 heures, je fatigue ...
Heureusement, les réponses suivantes étaient plus pertinentes.
Je je refairai plus, promis !
# copie fichiers cachés
Posté par jfba . Évalué à 0.
jfba
[^] # Re: copie fichiers cachés
Posté par redlums35 . Évalué à 1.
[^] # Re: copie fichiers cachés
Posté par jfba . Évalué à 0.
[jfba@myhost jfba]$ cp ./.* /tmp/KK
[jfba@myhost jfba]$ ls -la /tmp/KK
total 392
-rw-r--r-- 1 jfba jfba 0 fév 21 21:01 .addressbook
-rw------- 1 jfba jfba 2285 fév 21 21:01 .addressbook.lu
-rw-r--r-- 1 jfba jfba 131 fév 21 21:01 .aumixrc
...
...
-rw-r--r-- 1 jfba jfba 0 fév 21 21:01 .Xmodmap~
-rw-r--r-- 1 jfba jfba 415 fév 21 21:01 .xmovierc
-rw------- 1 jfba jfba 1873 fév 21 21:01 .xsession-errors
Je copie tous les .fic de mon répertoire de travail
jfba
[^] # Re: copie fichiers cachés
Posté par Matthieu Moy (site web personnel) . Évalué à 2.
$ cp ./.* /tmp/KK
cp: omitting directory `./.'
cp: omitting directory `./..'
cp: omitting directory `./.AbiSuite'
...
Et avec un cp -r, c'est la cata ...
La vraie solution, c'est plutôt
$ cp .[^.]* ..?* /tmp/KK
[^] # Re: copie fichiers cachés
Posté par jfba . Évalué à 0.
comment peut-on faire une copie de tout les fichiers .* ?
avec un exemple :
cp /home/toto/.* /home/dupond
La réponse :
cp ./.* /tmp/KK/
copie bien les fichiers dont le nom commence par un point (en ignorant les répertoires et avec les messages que tu signales)
De même, la 2ème question était :
comment on fait pour supprimer /home/toto/.* ?
La réponse :
cd /tmp/KK
rm -f ./.* (sans avertissement)
rm -- .* fait la même chose
supprime les fichiers copiés précédemment.
[^] # Re: copie fichiers cachés
Posté par jfba . Évalué à 0.
si rm -- .* supprime les fichiers commençant par un point
bien sûr,
cp -- .* /tmp/KK/ copie les fichiers commençant par un point
(voir le man rm)
# faire un cp de ficher .*
Posté par Jllc . Évalué à 6.
cp .??*
Les "?" remplaçent n'importe quel caractère, mais un seul à la fois. Ca me copie donc tous les fichiers d'au moins 3 caractères commençant par un ".", mais pas les répertoires "." et "..".
Cette commande "raterais" donc des fichiers comme ".a", ".2", mais je sais que je n'ai pas de tels fichiers, et cette commande est simple et courte.
# ...
Posté par M . Évalué à 4.
[^] # Re: ...
Posté par Bob Volant . Évalué à 2.
# Zsh is your friend
Posté par calandoa . Évalué à 2.
Le shell zsh gère bien mieux la chose que bash.
Un .* est remplacé par tous les fichiers/dossiers cachés, à l'exception de . et ..
Un * est remplacé par tous les fichiers non cachés, ou aussi ceux cachés (sans . et ..) si l'option GLOB_DOTS est mise.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.