Retourner aux forums || Retourner au forum Linux.debutant

Linux.debutant : faire un cp de ficher .*

Posté par redlums35 () le 21 février 2005
0
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

> Lire le message (13 commentaires, moyenne: 1,9).  

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

find ou for ... au choix

Posté par JJD () le 21/02/2005 à 18:06. (lien). Évalué à 1.

Bonjour,

    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 Matthieu C () le 21/02/2005 à 19:07. (lien). Évalué à 4.

              elle sert a quoi ta boucle ?
              cp peut prendre plus de 2 parametres

              • [^]Re: find ou for ... au choix

                Posté par JJD () le 21/02/2005 à 21:02. (lien). Évalué à 2.

                A faire joli ?

                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 () le 21/02/2005 à 18:29. (lien). Évalué à 0.

            cp ./.* /dir/

            jfba

            • [^]Re: copie fichiers cachés

              Posté par redlums35 () le 21/02/2005 à 18:33. (lien). Évalué à 1.

              marche pas cette commande :-) ca te copie une arborescence au dessus .

              • [^]Re: copie fichiers cachés

                Posté par jfba () le 21/02/2005 à 20:08. (lien). Évalué à 0.

                Chez moi, ça fait ça :

                [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 (page perso, ) le 21/02/2005 à 21:32. (lien). Évalué à 2.

                  Ben je serais curieux de savoir quel "cp" tu utilises parce que moi :

                  $ 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 () le 22/02/2005 à 20:09. (lien). Évalué à 0.

                    La question était :
                    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 () le 22/02/2005 à 20:30. (lien). Évalué à 0.

                      J'ai oublié :

                      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 () le 21/02/2005 à 18:48. (lien). Évalué à 6.

            Quand j'ai le même problème, dans mon répertoire home, je fais :

            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 Matthieu C () le 21/02/2005 à 19:05. (lien). Évalué à 4.

            .[^.]* est ton ami...

            • [^]Re: ...

              Posté par Rasqual () le 21/02/2005 à 19:17. (lien). Évalué à 2.

              Ta solution semble valide, sauf si on est vraiment strict en considérant des noms comme ...machinrc qui ont plusieurs points en-tête.

            Zsh is your friend

            Posté par calandoa () le 25/02/2005 à 10:44. (lien). Évalué à 2.

            Bon j'arrive un peu après la bataille, mais mieux vaut tard que jamais...

            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.

            Revenir en haut de page || Retourner aux forums || Retourner au forum Linux.debutant