J'ai un fichier sur le bureau, le nom du fichier est ded.html. Pour copier le fichier, je clique sur le fichier et j'appuie sur cmd+c.
Maintenant, comment puis-je faire la même chose en utilisant le terminal ?
J'ai un fichier sur le bureau, le nom du fichier est ded.html. Pour copier le fichier, je clique sur le fichier et j'appuie sur cmd+c.
Maintenant, comment puis-je faire la même chose en utilisant le terminal ?
Si je comprends bien la question, ce que vous cherchez est pbcopy
y pbpaste
.
Ouvrez un terminal et exécutez :
cat ~/Desktop/ded.html | pbcopy
Le fichier est maintenant dans votre presse-papiers.
Pour le mettre ailleurs (c'est-à-dire le coller), exécutez :
pbpaste > ~/Documents/ded.html
Vous devriez maintenant avoir une copie de ded.html dans ~/Documents.
Cette méthode est idéale pour travailler avec des fichiers texte, mais elle échouera si vous essayez d'effectuer cette tâche avec des binaires. Essayez de le faire avec une image pour voir ce que je veux dire.
Après avoir tapé $ cat ~/Desktop/ded.html | pbcopy je ne peux pas utiliser cmd+v pour coller le fichier. Pourtant, $ pbpaste > ~/Documents/ded.html a fait l'affaire.
Vous pouvez également visualiser le contenu du fichier dans le presse-papiers de votre OSX en passant par le menu Finder Editer > Afficher le presse-papiers (testé dans Yosemite).
La réponse de Lri va dans la bonne direction, mais elle présente quelques défauts : il n'est pas nécessaire d'utiliser la fonction Finder ( the clipboard
fait partie de la StandardAdditions OSAX), et donnant un run
est un moyen beaucoup plus fiable de passer des arguments depuis la ligne de commande (depuis 10.4). Ces deux changements simplifient grandement l'"échappement" qui doit être fait pour entrer dans le programme dans un shell.
Voici ma version (enveloppée dans une fonction shell - vous pourriez la mettre dans (par exemple) votre .bashrc
pour le rendre disponible dans vos shells) :
file-to-clipboard() {
osascript \
-e 'on run args' \
-e 'set the clipboard to POSIX file (first item of args)' \
-e end \
"$@"
}
file-to-clipboard ~/Desktop/ded.html
Un fichier qui a été mis dans le presse-papiers avec ce script peut alors être collé dans Finder pour copier le fichier dans un autre dossier.
osascript peut aussi être utilisé comme interpréteur de hash-bang (depuis 10.5). Mettez cela dans un fichier (par exemple file-to-clipboard
)
#!/usr/bin/osascript
on run args
set the clipboard to POSIX file (first item of args)
end
Rendre le fichier exécutable ( chmod +x /path/to/where/ever/you/put/file-to-clipboard
). Puis exécutez-le comme suit :
/path/to/where/ever/you/put/file-to-clipboard ~/Desktop/ded.html
S'il est stocké dans un répertoire dans le PATH, alors vous pouvez omettre le chemin vers le fichier "script".
@Lri : Finder ne comprend pas l'évidence set the clipboard to {one,two}
(bien qu'un autre programme AppleScript puisse extraire la liste avec succès). Le site StandardAdditions Les commandes du presse-papiers peuvent être limitées à des éléments uniques.
Il n'y a aucun moyen de réaliser ce que vous essayez de faire en utilisant la ligne de commande. Bien qu'Apple propose le pbcopy
y pbpaste
pour permettre la copie de base de texte, vous ne pouvez pas utiliser ces outils pour copier un fichier au sens où vous l'entendez.
Sans entrer dans les détails techniques, lorsque vous "copiez" un fichier dans le Finder à l'aide de la commande C vous ne copiez pas réellement le fichier lui-même, vous faites simplement référence au fichier dans le presse-papiers et vous le marquez comme une référence de fichier. Lorsqu'une application reçoit cette référence lors du collage, elle a la responsabilité de faire le tri, de comprendre ce que vous avez collé et, finalement, de travailler avec le fichier comme bon lui semble. En substance, lorsque vous copiez un fichier dans le Finder, il enregistre le chemin d'accès au fichier d'une certaine manière dans un certain presse-papiers, et lorsque vous collez, il reçoit ce chemin d'accès et sait qu'il doit créer un nouveau fichier en utilisant le contenu de l'ancien (copier un fichier dans le presse-papiers, le supprimer, essayer de le coller ailleurs et voir ce qui se passe, par exemple).
Dans ce sens du copier-coller, les outils disponibles à portée de main ne sont pas suffisants pour faire ce dont vous avez besoin. Comme boehj l'a suggéré, vous pouvez essayer de copier le contenu de l'ancien fichier dans le nouveau, mais cela ne fonctionne bien que pour les fichiers texte. Tout fichier binaire que vous obtiendrez sera corrompu (essayez de faire cela avec une image - elle devient corrompue).
La ligne de commande traditionnelle vous fera échouer de cette manière, mais vous pouvez, si vous le souhaitez, envisager de faire cela en AppleScript, puis de l'invoquer via la ligne de commande avec osascript
.
Vous avez raison pour les images, etc. Je n'y avais pas pensé. Je suppose que j'ai mal compris la question, car bien que pbcopy
y pbpaste
fonctionnera avec un fichier .html, mais c'est uniquement parce qu'il s'agit d'un fichier texte.
Non, vous avez compris la question correctement, c'est juste que vous avez supposé que ces outils fonctionnaient comme ils le devaient, ce qui n'est pas le cas. Ils sont bogués, et ne sont même pas censés fonctionner de cette façon, bien qu'Apple ait fait un très mauvais travail de documentation. Si vous tapez pbcopy -help
vous obtiendrez une version non valable pour la production NSLog()
ligne qui ne fait que répéter 'pbcopy -help'
. Il faut être un programmeur pour comprendre cela, c'est pourquoi j'ai jugé nécessaire d'intervenir.
Wow, c'est du travail très bâclé. Je n'ai jamais fait pbcopy -help
avant. man pbcopy
n'est pas très complet non plus, maintenant que j'y ai jeté un œil. Merci de m'avoir fait remarquer ces choses.
La fonction ci-dessous ne fonctionne qu'avec un seul fichier et non avec plusieurs fichiers. Elle nécessite GNU readlink
que vous pouvez installer en exécutant brew install findutils
.
copy(){ osascript -e{'on run{a}','set the clipboard to posix file a',end} "$(greadlink -f -- "$1")";}
Edit : J'ai enlevé le tell app "Finder"
bloc.
Edit 2 : Retour à une version qui supporte les chemins relatifs.
LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.
4 votes
Voulez-vous dire copier le fichier ou copier le contenu du fichier afin de pouvoir coller le contenu ?
1 votes
Voir aussi apple.stackexchange.com/q/362245/10713