Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

alternative à "cp -al" ?

17 réponses
Avatar
pehache-tolai
Bonjour,

Sur le linux de mon NAS (Qnap), la commande "cp" ne supporte pas l'option
"-l" (qui fait des hardlinks sur les fichiers au lieu de les copier). J'ai
un script avec un "cp -al" dedans, qui duplique une arborescence complète :
par quoi je pourrais le remplacer ? Je pense à quelque chose du genre :

(au lieu de cp -al dir1 /path2/dir1)

find dir1 -type d -exec mkdir /path2/{} \;
find dir1 -type f -exec ln {} /path2/{} \;

des commentaires, ou d'autres idées ?

Merci,

--
pehache
http://pehache.free.fr/public.html

10 réponses

1 2
Avatar
pehache-tolai
"pehache-tolai" a écrit dans le message de news:

Bonjour,

Sur le linux de mon NAS (Qnap), la commande "cp" ne supporte pas
l'option "-l" (qui fait des hardlinks sur les fichiers au lieu de les
copier). J'ai un script avec un "cp -al" dedans, qui duplique une
arborescence complète : par quoi je pourrais le remplacer ? Je pense
à quelque chose du genre :
(au lieu de cp -al dir1 /path2/dir1)

find dir1 -type d -exec mkdir /path2/{} ;
find dir1 -type f -exec ln {} /path2/{} ;




Ah zut, le "find" ne supporte pas "-exec" !

--
pehache
http://pehache.free.fr/public.html
Avatar
pehache-tolai
"pehache-tolai" a écrit dans le message de news:


Ah zut, le "find" installé ne supporte pas "-exec" !



Pour ça c'est bon, j'ai pu installer le package "findutils" qui comporte
notamment une commande "find" améliorée (enfin, habituelle disons plutôt !).

Mais du coup ça me fait penser qu'il y aurait peut-être tout simplement un
package qui comporterait la commance "cp" habituelle (qui supporte "-l")
plutôt que la version allégée qui est installée par défaut. Par contre là je
ne trouve pas : quelqu'un saurait dans quel genre de package est "cp"
habituellement ? Le gestionnaire de package est "ipkg".

Vu que ça devient très Linux, je copie sur fcolc, avec FU2.

--
pehache
http://pehache.free.fr/public.html
Avatar
Bruno Tréguier
Le 05/01/2010 à 9:00, pehache-tolai a écrit :
Bonjour,

Sur le linux de mon NAS (Qnap), la commande "cp" ne supporte pas
l'option "-l" (qui fait des hardlinks sur les fichiers au lieu de les
copier). J'ai un script avec un "cp -al" dedans, qui duplique une
arborescence complète : par quoi je pourrais le remplacer ? Je pense à
quelque chose du genre :

(au lieu de cp -al dir1 /path2/dir1)

find dir1 -type d -exec mkdir /path2/{} ;
find dir1 -type f -exec ln {} /path2/{} ;

des commentaires, ou d'autres idées ?



Bonsoir,

S'il y a "cpio" sur votre NAS:

find dir1 | cpio -pl /path2

Cordialement,

Bruno
Avatar
pehache-tolai
"Bruno Tréguier" a écrit
dans le message de news: hi0ano$n46$
Le 05/01/2010 à 9:00, pehache-tolai a écrit :
Bonjour,

Sur le linux de mon NAS (Qnap), la commande "cp" ne supporte pas
l'option "-l" (qui fait des hardlinks sur les fichiers au lieu de les
copier). J'ai un script avec un "cp -al" dedans, qui duplique une
arborescence complète : par quoi je pourrais le remplacer ? Je pense
à quelque chose du genre :

(au lieu de cp -al dir1 /path2/dir1)

find dir1 -type d -exec mkdir /path2/{} ;
find dir1 -type f -exec ln {} /path2/{} ;

des commentaires, ou d'autres idées ?



Bonsoir,

S'il y a "cpio" sur votre NAS:

find dir1 | cpio -pl /path2



Ah ouais, pas mal ! Je suis épaté, cpio a toujours été un peu magique pour
moi :-)

(il n'y avait pas cpio mais j'ai pu l'installer facilement par ipkg)

Merci !!

--
pehache
http://pehache.free.fr/public.html
Avatar
Cyrille Lefevre
Bruno Tréguier a écrit :

S'il y a "cpio" sur votre NAS:

find dir1 | cpio -pl /path2



Bonjour,

par habitude, je dirais plutôt :

find dir1 | cpio -pdl /path2

-d pour créer les répertoire non existant.

j'ai aussi l'habitude d'y mettre l'option -m (pour conserver les dates
de création), mais dans ce cas, elle est effectivement inutile... %- |

Cordialement,

Cyrille Lefevre.
--
mailto:Cyrille.Lefevre-news%
supprimer "%nospam% et ".invalid" pour me repondre.
Avatar
Bruno Tréguier
Le 06/01/2010 à 2:03, Cyrille Lefevre a écrit :

par habitude, je dirais plutôt :

find dir1 | cpio -pdl /path2

-d pour créer les répertoire non existant.

j'ai aussi l'habitude d'y mettre l'option -m (pour conserver les dates
de création), mais dans ce cas, elle est effectivement inutile... %-|



Bonjour Cyrille,

Vous avez tout à fait raison, et je dirais même que le -m n'est pas
inutile: les répertoires créés doivent avoir la même date que les
originaux, c'est donc bien:

find dir1 | cpio -pdlm /path2

;-)

Cordialement,

Bruno
Avatar
geo cherchetout
Le 05/01/2010 21:27, *pehache-tolai* a écrit fort à propos :

Mais du coup ça me fait penser qu'il y aurait peut-être tout simplement un
package qui comporterait la commance "cp" habituelle (qui supporte "-l")
plutôt que la version allégée qui est installée par défaut. Par contre là je
ne trouve pas : quelqu'un saurait dans quel genre de package est "cp"
habituellement ? Le gestionnaire de package est "ipkg".

Vu que ça devient très Linux, je copie sur fcolc, avec FU2.



coreutils
Avatar
xavier
pehache-tolai wrote:

des commentaires, ou d'autres idées ?



Il y a pax, sur ton NAS ? C'est bien, pax...

--
XAv
Disponible au 01/06/2010
<http://www.xavierhumbert.net/perso/CV2.html>
Avatar
Benoit Izac
Bonjour,

le 05/01/2010 à 21:27, pehache-tolai a écrit dans le message
:

Ah zut, le "find" installé ne supporte pas "-exec" !



Pour ça c'est bon, j'ai pu installer le package "findutils" qui
comporte notamment une commande "find" améliorée (enfin, habituelle
disons plutôt !).

Mais du coup ça me fait penser qu'il y aurait peut-être tout
simplement un package qui comporterait la commance "cp" habituelle
(qui supporte "-l") plutôt que la version allégée qui est installée
par défaut. Par contre là je ne trouve pas : quelqu'un saurait dans
quel genre de package est "cp" habituellement ? Le gestionnaire de
package est "ipkg".



Quelle distribution ?

Sur mon OpenWRT, la dernière version n'a plus ipkg mais opkg, il suffit
de faire :
# opkg search '*cp'
busybox - 1.11.2-2.1 - /bin/cp
dnsmasq - 2.47-3 - /etc/config/dhcp
dropbear - 0.51-2 - /usr/bin/scp
luci-admin-core - 0.8.7-1 - /lib/uci/schema/default/dhcp

Il me semble me souvenir qu'ipkg avait la même syntaxe.
ipkg sans option te donnera la réponse :
# opkg 2>&1| grep provid
search <file|regexp> Search for a package providing <file>
whatprovides [-A] [pkgname|pat]+
-A Query all packages with whatdepends, whatprovides, whatreplaces, whatconflicts
--verbosity <level> provided increase verbosity by one. Verbosity levels:

Note que malgré que ce soit marqué regexp, il s'agit en fait de glob du
shell.

--
Benoit Izac
Avatar
Cyrille Lefevre
Bruno Tréguier a écrit :
Le 06/01/2010 à 2:03, Cyrille Lefevre a écrit :

par habitude, je dirais plutôt :

find dir1 | cpio -pdl /path2

-d pour créer les répertoire non existant.

j'ai aussi l'habitude d'y mettre l'option -m (pour conserver les dates
de création), mais dans ce cas, elle est effectivement inutile... %-|



Bonjour Cyrille,

Vous avez tout à fait raison, et je dirais même que le -m n'e st pas
inutile: les répertoires créés doivent avoir la mêm e date que les
originaux, c'est donc bien:

find dir1 | cpio -pdlm /path2




Bonjour,

ah! c'était donc ça...

après 20 ans d'unix dernière soi, c'est dingue comme on fait le s choses
par habitude sans se rappeler pourquoi ! %-/

Cordialement,

Cyrille Lefevre.
--
mailto:Cyrille.Lefevre-news%
supprimer "%nospam% et ".invalid" pour me repondre.
1 2