Copie récursive de fichiers cachés

Atma -  
 TOnin -
Bonjour à tous !
Ma question est relativement simple : comment copier les fichiers cachés lorsqu'on fait une copie récursive ?

En effet, lorsque je fais
cp -pR monRep/* repDest/


Les fichiers cachés ne sont pas copiés (nota: je ne VEUX PAS copier le répertoire monRep dans repDest ... mais seulement les fichiers/dossiers constitutifs de ce répertoire => pas de "cp -pR monRep/ repDest/" !)

Maintenant, lorsque je fais :
cp -pR monRep/.* repDest/


Il "s'amuse à "remonter" dans les répertoires au-dessus de monRep/ : normal car ".." satisfait la regex ".*" grr

Donc ce à quoi j'ai pensé, ca aurait été d'utiliser une regexp .. le probleme est que visiblement ce ne sont pas des regexp que je "connais" puisque lorsque je fais un truc du genre :
cp -pR monRep/.[^.]* repDest/


Ca ne marche pas :'(

Si quelqu'un pouvait m'aider ca serait sympa :)
D'avance merci
A voir également:

6 réponses

Atma
 
huhu ca a l'air compliqué :)
Entretemps, j'ai trouvé la solution : cp n'utilise pas de RegExp mais des "expressions du shell" ... du coup "tout caractere sauf le point" s'écrit [!.] et non [^.] :)

cp -r monRep/.[!.]* repDest/

fais exactement ce que je veux :)

Merci a tout le monde :)
5
TOnin
 
Essaie donc avec simplement un point, comme ça il copiera le répertoire ./ dans repDest... Or ./ existe déjà dans repDest c'est repDest lui-même.
Du coup ça marche !

cp -pR monRep/. repDest/

:-D
2
ME.here
 
Merci pour ta solution Atma !
1
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

pour l'info

si en 2005 [^.] ne fonctionnais pas, alors en 2008 il fonctionne ;-)
root@debian:~/cache# ls -l
total 0
-rw-r--r-- 1 root lami20j 0 2008-05-05 11:35 b
-rw-r--r-- 1 root lami20j 0 2008-05-05 11:36 c
root@debian:~/cache# ls -al
total 1484
drwxr-xr-x  2 root lami20j    4096 2008-05-05 11:36 .
drwxr-xr-x 25 root lami20j 1511424 2008-05-05 11:34 ..
-rw-r--r--  1 root lami20j       0 2008-05-05 11:34 .a
-rw-r--r--  1 root lami20j       0 2008-05-05 11:35 b
-rw-r--r--  1 root lami20j       0 2008-05-05 11:34 .b
-rw-r--r--  1 root lami20j       0 2008-05-05 11:36 c
root@debian:~/cache# ls -al .[!.]*
-rw-r--r-- 1 root lami20j 0 2008-05-05 11:34 .a
-rw-r--r-- 1 root lami20j 0 2008-05-05 11:34 .b
root@debian:~/cache# ls -al .[^.]*
-rw-r--r-- 1 root lami20j 0 2008-05-05 11:34 .a
-rw-r--r-- 1 root lami20j 0 2008-05-05 11:34 .b

0
Atma
 
ca ne m'intéresse de faire comme ça :)
je l'ai deja dit d'ailleurs ... "pas de "cp -pR monRep/ repDest/" " ;)
je veux copier les fichier/dossiers du répertoire et non le répertoire lui-même !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jisisv Messages postés 3645 Date d'inscription   Statut Modérateur Dernière intervention   934
 
Un petit coup de 'compound commands' et de tar sous bash:
johand@horus:~/tmp/testcache$ mkdir rep1 rep2
johand@horus:~/tmp/testcache$ ls -al rep1 rep2
rep1:
total 8
drwxr-xr-x  2 johand johand 4096 2005-11-05 06:45 .
drwxr-xr-x  4 johand johand 4096 2005-11-05 06:45 ..

rep2:
total 8
drwxr-xr-x  2 johand johand 4096 2005-11-05 06:45 .
drwxr-xr-x  4 johand johand 4096 2005-11-05 06:45 ..
johand@horus:~/tmp/testcache$ touch rep1/brol rep1/.h1 rep1/.h2
johand@horus:~/tmp/testcache$ (cd rep1 ; tar -c .)| (cd rep2 ;tar -x )
johand@horus:~/tmp/testcache$ ls -al  rep2
total 8
drwxr-xr-x  2 johand johand 4096 2005-11-05 06:45 .
drwxr-xr-x  4 johand johand 4096 2005-11-05 06:45 ..
-rw-r--r--  1 johand johand    0 2005-11-05 06:45 brol
-rw-r--r--  1 johand johand    0 2005-11-05 06:45 .h1
-rw-r--r--  1 johand johand    0 2005-11-05 06:45 .h2
0
mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   7 882
 
(~) $ mkdir test
(~) $ cd test
(~/test) $ touch .plop1
(~/test) $ touch .plop2
(~/test) $ touch plop3
(~/test) $ cd ..
(~) $ cp -r test/ test2
 (~) $ ls -al test2
total 8
drwxr-xr-x   2 mando users 4096 nov  5 00:35 .
drwx------  58 mando users 4096 nov  5 00:35 ..
-rw-r--r--   1 mando users    0 nov  5 00:35 .plop1
-rw-r--r--   1 mando users    0 nov  5 00:35 .plop2
-rw-r--r--   1 mando users    0 nov  5 00:35 plop3

Bonne chance
-1
TOnin
 
Ressaie avec la création des deux répertoires test et test2 au début de ta séquence. Tu verras que ça ne marche plus.
0