Aller au contenu


Photo

Commande copie sous Shell : cp


  • Please log in to reply
8 replies to this topic

#1 Tom25

Tom25

    Membre d'honneur

  • Membres
  • PipPipPipPipPipPip
  • 1 085 Messages :
  • Configuration:MacBook Pro et iMac INTEL
  • Sexe:Masculin
  • Localisation:Besançon (25)
  • Passions:VTT, Ski, plongée en masque et palmes.
    J'aime aussi les femmes, en fait, c'est plutôt elles qui m'aiment (dans mes rêves) :-)) .

Posté 11 novembre 2009 - 10:08

J'ai trouvé plein de résultats avec 'cp' mais tellement de pages que finalement je n'ai pas su trouver ma réponse.

D'après ce que j'ai compris en tapant 'man cp' dans Terminal, si je veux faire une copie exactement comme le fait le fait le Finder (ou AppleScript avec l'instruction Duplicate), c'est à dire en gardant la position des icônes dans la fenêtre si je copie un dossier, et en gardant les dates de modifications des fichiers, je dois faire :

cp -p -R MonShellPathSource MonShellPAthCible

sachant que ma source peut indifféremment être un dossier ou un fichier.


C'est bien ça ?



Note : C'est parce que j'ai rajouté cette option dans mon programme de synchronisation de fichiers SyncTwoFlders. J'utilisais jusque là l'instruction AppleScript Duplicate via RealBasic (à cause de certains problèmes avec l'instruction Copy de RealBasic) mais un gars me dit c'est pénible les tching tching (son du Finder) à chaque fois qu'un élément est copié.
De plus, si un gars veut personnaliser sa manière de copier il pourra avec Shell puisque j'ai mis l'instruction Shell dans un EditField (avec 'cp -p -R ' par défaut écrit dedans).


Merci de vos lumières.
Mon site web où je me présente et où se trouvent mes chtits programmes.
J'ai un iMac Intel et un MacBookPro sous Snow Leopard en réseau via une LiveBox, un iPod touch, un iPhone 4 et un iPad 1.

#2 jp

jp

    Touriste

  • Modérateurs
  • PipPipPipPipPipPipPipPipPip
  • 6 564 Messages :
  • Configuration:N/A
  • Sexe:Masculin
  • Localisation:Créteil

Posté 11 novembre 2009 - 13:31

"-p" et "-R" sont bien oui. Mais je serais toi j'utiliserais tout simplement l'option "-a" (qui est l'équivalent de "-pPR").
La phrase suivante est fausse. La phrase précédente est vraie.

#3 Tom25

Tom25

    Membre d'honneur

  • Membres
  • PipPipPipPipPipPip
  • 1 085 Messages :
  • Configuration:MacBook Pro et iMac INTEL
  • Sexe:Masculin
  • Localisation:Besançon (25)
  • Passions:VTT, Ski, plongée en masque et palmes.
    J'aime aussi les femmes, en fait, c'est plutôt elles qui m'aiment (dans mes rêves) :-)) .

Posté 11 novembre 2009 - 14:29

Ok merci beaucoup, je vais donc mettre -a puisqu'effectivement je ne "follow" pas le alias.


Deux petites questions encore :

• Ça semble être la même chose si j'écris
cp -p -P -R MonShellPathSource MonShellPathCible
qui si j'écris
cp -pPR MonShellPathSource MonShellPathCible
ça donne bien le même résultat ?


Et juste pour info, si j'écrivais par exemple
cp -p MonShellPathSource -P MonShellPathCible -R
ce serait pareil. Est ce que Shell s'en fou de l'ordre des paramètres ?

• Quand je fais par exemple
man cp
J'arrive à la fin de la liste de description, et j'ai ESC écrit. Comment je récupère la main . Return ne fait rien, Esc non plus ?
Et je veux récupérer la main en cours de liste, sans être obligé de faire défiler jusqu'en bas ?


Merci encore.

Ce message a été modifié par Tom25 - 11 novembre 2009 - 14:30 .

Mon site web où je me présente et où se trouvent mes chtits programmes.
J'ai un iMac Intel et un MacBookPro sous Snow Leopard en réseau via une LiveBox, un iPod touch, un iPhone 4 et un iPad 1.

#4 jp

jp

    Touriste

  • Modérateurs
  • PipPipPipPipPipPipPipPipPip
  • 6 564 Messages :
  • Configuration:N/A
  • Sexe:Masculin
  • Localisation:Créteil

Posté 11 novembre 2009 - 14:40

• Ça semble être la même chose si j'écris

cp -p -P -R MonShellPathSource MonShellPathCible
qui si j'écris
cp -pPR MonShellPathSource MonShellPathCible
ça donne bien le même résultat ?

Tout à fait, et c'est le cas de bon nombre de commandes : "getopt" fonctionne comme ça, et bon nombre l'utilise, "cp" y compris.

Et juste pour info, si j'écrivais par exemple

cp -p MonShellPathSource -P MonShellPathCible -R
ce serait pareil. Est ce que Shell s'en fou de l'ordre des paramètres ?

Ça dépend les commands, mais pour "cp", non : l'ordre à une importance. Autant les "flags" de configuration peuvent être dans n'importe quel ordre, autant la source et la cible doivent être les derniers arguments.

• Quand je fais par exemple

man cp
J'arrive à la fin de la liste de description, et j'ai ESC écrit. Comment je récupère la main . Return ne fait rien, Esc non plus ?
Et je veux récupérer la main en cours de liste, sans être obligé de faire défiler jusqu'en bas ?

C'est "end" qui est écrit, pas "esc". Utilise les flêche pour naviguer (dans les quatre sens), et "q" pour quitter.
La phrase suivante est fausse. La phrase précédente est vraie.

#5 Tom25

Tom25

    Membre d'honneur

  • Membres
  • PipPipPipPipPipPip
  • 1 085 Messages :
  • Configuration:MacBook Pro et iMac INTEL
  • Sexe:Masculin
  • Localisation:Besançon (25)
  • Passions:VTT, Ski, plongée en masque et palmes.
    J'aime aussi les femmes, en fait, c'est plutôt elles qui m'aiment (dans mes rêves) :-)) .

Posté 11 novembre 2009 - 14:58

Ok merci beaucoup jp.


En fait, j'ai ajouté cette fonction car un gars m'a écrit avant hier pour me dire que comme il utilisait SyncTwoFolders avec de gros dossiers, et qu'il copiait des dizaines de milliers de fichiers, il ne pouvait rien faire pendant ce temps car il entendait Tchinggg, Tchinggg, Tchinggg toutes les secondes parce que le Finder copiait un fichier. Et c'est le Finder qui fait ce Tchingg, pas moi, donc je ne le maitrise pas.

Personnellement ça ne m'a jamais gêné car je n'ai pas tant de fichiers sur mon Mac et mes synchros se font en quelques secondes.

Et comme je préfère éviter d'utiliser la commande CopyFileTo de RealBasic, je rajouté à l'utilisateur l'option d'utiliser le Shell. Comme ça s'il veut suivre les alias par exemple il pourra modifier les paramètres de la commande shell cp.

Note: Je ne sais plus trop les problèmes que j'avais avec l'instruction CopyFileTo de RB mais il me semble que ça merdait avec les disques en réseaux et que les autorisations aussi posaient problèmes. Et puis à l'époque cette instruction ne copiait pas les dossiers, fallait "se taper" le récursif.
Mon site web où je me présente et où se trouvent mes chtits programmes.
J'ai un iMac Intel et un MacBookPro sous Snow Leopard en réseau via une LiveBox, un iPod touch, un iPhone 4 et un iPad 1.

#6 zekiller28

zekiller28

    Admin qui mord

  • Administrateurs
  • PipPipPipPipPipPipPipPipPip
  • 10 685 Messages :
  • Configuration:Toutes sortes de Mac du PPC à l'Intel et toute sorte de MacOS X De Panther Client à Maverick.
  • Sexe:Masculin
  • Localisation:Saint-Hilarion (78)

Posté 12 novembre 2009 - 10:47

Pour la synchro, rsync est très bien aussi car il conserve les droits des fichiers/dossiers copiés… Tu peux donc même cloner un volume qui sera bootable à l'arrivée… Perso je l'utilise tout les jours pour mes serveurs…
Le site de ToolsX
Le site de ToolsXOptimizer

Apple Certified Mac Management Basics 10.12
Apple Certified Mac Management Basics 10.9 English
Apple Certified Mac Integration Basics 10.9 English
Apple Certified Associate Mac Integration 10.8
Apple Certified Mac Management Basics 10.8

#7 AliGator

AliGator

    (Trop) Grand Bavard

  • Membres d'honneur
  • PipPipPipPipPipPipPipPipPip
  • 12 338 Messages :
  • Configuration:• MacBook Pro 15" 2,2GHz, 10.6
    • MacMini G4 1,42GHz, 10.5
  • Sexe:Masculin
  • Localisation:Rennes (Bretagne, France)
  • Passions:Piano, Cuisine, Danse (Rock, ...), faire des réponses de 3km

Posté 13 novembre 2009 - 11:37

Pour info pour naviguer dans une page "man" :

- Les flèches haut et bas pour défiler ligne par ligne
- Barre d'espace pour défiler vers le bas page par page
- 'b' (pour "back") pour remonter d'une page vers le haut
- 'q' pour quitter la page man
- '/' pour rentrer en mode "recherche". Taper alors le mot à rechercher, puis entrée, pour commencer la recherche (à partir de l'endroit de la page où vous êtes, ça ne va pas rechercher dans les pages plus haut). Pour rechercher les occurrences suivantes, retapez '/', et validez immédiatement sans taper de texte derrière : cela aura pour effet de continuer la recherche sur le même mot clé.

Il me semble qu'il y a d'autres raccourcis mais ce sont les plus utiles et usuels.

Le posteur fou de macfr
Mon blog: Crunchy Development
______________
Devise Shadok : S'il n'y a pas de solution, c'est qu'il n'y a pas de problème...


#8 Tom25

Tom25

    Membre d'honneur

  • Membres
  • PipPipPipPipPipPip
  • 1 085 Messages :
  • Configuration:MacBook Pro et iMac INTEL
  • Sexe:Masculin
  • Localisation:Besançon (25)
  • Passions:VTT, Ski, plongée en masque et palmes.
    J'aime aussi les femmes, en fait, c'est plutôt elles qui m'aiment (dans mes rêves) :-)) .

Posté 14 novembre 2009 - 09:42

Merci, faut que je me note ça.
Mon site web où je me présente et où se trouvent mes chtits programmes.
J'ai un iMac Intel et un MacBookPro sous Snow Leopard en réseau via une LiveBox, un iPod touch, un iPhone 4 et un iPad 1.

#9 Tom25

Tom25

    Membre d'honneur

  • Membres
  • PipPipPipPipPipPip
  • 1 085 Messages :
  • Configuration:MacBook Pro et iMac INTEL
  • Sexe:Masculin
  • Localisation:Besançon (25)
  • Passions:VTT, Ski, plongée en masque et palmes.
    J'aime aussi les femmes, en fait, c'est plutôt elles qui m'aiment (dans mes rêves) :-)) .

Posté 15 novembre 2009 - 11:54

Si j'écris dans ma FAQ à propos de mon logiciel, qui donc désormais offre le choix entre copier un fichier via AppleScript ou via une commande Shell, que techniquement au final c'est exactement la même chose. Que la commande AppleScript ne fait qu'appelait le Finder qui lui même ne fait qu'utiliser cette commande cp sauf qu'il y met une interface autour, soit la fenêtre avec la barre de progression et le son en fin de copie.

Est ce que je dis une connerie ?
Mon site web où je me présente et où se trouvent mes chtits programmes.
J'ai un iMac Intel et un MacBookPro sous Snow Leopard en réseau via une LiveBox, un iPod touch, un iPhone 4 et un iPad 1.




0 utilisateur(s) en train de lire ce sujet

0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)