J'ai un fichier sur le bureau, le nom du fichier est ded.html. Pour copier le fichier, je clique sur le fichier et appuie sur cmd + c.
Maintenant, comment pourrais-je faire la même chose en utilisant un 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 appuie sur cmd + c.
Maintenant, comment pourrais-je faire la même chose en utilisant un terminal?
Réponses:
Si je comprends bien la question, ce que vous recherchez est pbcopy
et pbpaste
.
Ouvrez un terminal et faites:
$ cat ~/Desktop/ded.html | pbcopy
Maintenant, ce fichier est dans le presse-papier.
Pour le mettre ailleurs, c'est-à-dire pour le coller, faites:
$ pbpaste > ~/Documents/ded.html
Vous devriez maintenant avoir une copie de ded.html dans ~ / Documents.
cat ~/.emulator_console_auth_token | auth <read_content>
?
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 Finder ( the clipboard
fait partie de StandardAdditions OSAX) et donner un run
gestionnaire est un moyen beaucoup plus fiable de passer des arguments depuis la ligne de commande. (depuis 10.4). Ces deux modifications simplifient grandement les «échappées» nécessaires pour entrer dans le programme dans un shell.
Voici ma version (encapsulée dans une fonction shell - vous pouvez l'insérer dans (par exemple, votre .bashrc
pour la 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é placé dans le Presse-papiers avec ce script peut ensuite être collé dans le Finder pour copier le fichier dans un autre dossier.
osascript peut également être utilisé comme interprète de hash-bang (à partir de 10.5). Mettre ceci 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 lancez-le comme ceci:
/path/to/where/ever/you/put/file-to-clipboard ~/Desktop/ded.html
S'il est stocké dans un répertoire du chemin PATH, vous pouvez omettre le chemin du fichier «script».
set the clipboard to {one,two}
(bien qu'un autre programme AppleScript puisse extraire la liste avec succès). Les commandes du Presse-papiers StandardAdditions 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 les outils pbcopy
et pbpaste
permettant la copie de base de texte, vous ne pouvez pas utiliser ces outils pour copier un fichier dans le sens que vous recherchez.
Sans trop entrer dans les détails techniques, lorsque vous "copiez" un fichier dans le Finder en utilisant ⌘C, vous ne copiez pas 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 lorsque vous la collez, elle a la responsabilité de trier les éléments, de déterminer ce que vous avez collé et, en définitive, de travailler avec le fichier à votre guise. En substance, lorsque vous copiez un fichier dans le Finder, il enregistre le chemin du fichier d’une certaine manière vers un certain presse-papiers, et lorsque vous collez, il reçoit ce chemin et sait créer un nouveau fichier en utilisant le contenu du fichier. ancien (copiez un fichier dans le presse-papiers, supprimez-le, essayez de le coller ailleurs et voyez ce qui se passe, par exemple).
Dans ce sens de copier-coller, les outils disponibles ne suffisent pas pour faire ce dont vous avez besoin. Comme suggéré par boehj, vous pouvez essayer de copier le contenu de l'ancien fichier dans un nouveau, mais cela ne fonctionnera que pour les fichiers texte. Tous les fichiers binaires que vous obtiendrez seront corrompus (essayez de le faire avec une image - elle sera corrompue).
La ligne de commande traditionnelle vous échouera de cette manière, mais vous pouvez jeter un coup d'œil si vous souhaitez le faire dans AppleScript, puis l'invoquer via la ligne de commande avec osascript
.
pbcopy
et pbpaste
fonctionnera avec un fichier .html, c'est uniquement parce qu'il se trouve qu'il s'agit simplement d'un fichier texte.
pbcopy -help
, vous obtenez une NSLog()
ligne ne répétant pas la production 'pbcopy -help'
. C’est bien pour un programmeur de comprendre cela, c’est pourquoi j’ai jugé nécessaire d’intervenir.
La fonction ci-dessous ne fonctionne qu'avec un seul fichier et non avec plusieurs fichiers. Il 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 supprimé le tell app "Finder"
bloc.
Edit 2: Revenez à une version qui prend en charge les chemins relatifs.
Voici un script Shell / Bash simple. Il suffit de le coller dans votre .bashrc
fichier (ou similaire):
file-to-clipboard() {
if [ -z "$1" ]; then
echo "file path/name:"
read FILE
else
FILE="$1"
fi
pbcopy < "$FILE"
}
Avec support de fichier relatif:
clip_img() {
osascript -e 'on run argv' \
-e 'set currentDir to do shell script "pwd"' \
-e 'set the clipboard to (read POSIX file (POSIX path of (currentDir as text & (first item of argv) )) as JPEG picture)' \
-e 'end run' "/$1"
# osascript -e 'clipboard info'
}
exécuter clip_img path-to-file
pour copier l'image dans le presse-papier, et path-to-file
pourrait être relatif. Le fichier peut être un fichier jpeg ou png.
Vous pouvez utiliser cat 'originfile'> 'destinationfile' sur les environnements Unix;
copier le fichier de destination du fichier d'origine sur Windows.