Ich habe eine Datei auf dem Desktop, Dateiname ist ded.html. Um die Datei zu kopieren, klicke ich auf die Datei und drücke cmd + c.
Wie würde ich jetzt dasselbe mit dem Terminal machen?
Ich habe eine Datei auf dem Desktop, Dateiname ist ded.html. Um die Datei zu kopieren, klicke ich auf die Datei und drücke cmd + c.
Wie würde ich jetzt dasselbe mit dem Terminal machen?
Antworten:
Wenn ich die Frage richtig verstehe, ist pbcopy
und danach Sie pbpaste
.
Öffne ein Terminal und mache:
$ cat ~/Desktop/ded.html | pbcopy
Diese Datei befindet sich nun in der Zwischenablage.
Um es woanders zu platzieren, das heißt, um es einzufügen, mache:
$ pbpaste > ~/Documents/ded.html
Jetzt sollten Sie eine Kopie von ded.html in ~ / Documents haben.
cat ~/.emulator_console_auth_token | auth <read_content>
?
Die Antwort von Lri geht in die richtige Richtung, hat jedoch ein paar Schwachstellen: Es ist nicht erforderlich, Finder zu verwenden ( the clipboard
ist Teil von StandardAdditions OSAX), und die Angabe eines Handlers run
ist eine viel zuverlässigere Möglichkeit, Argumente über die Befehlszeile zu übergeben (seit 10.4). Das Durchführen dieser beiden Änderungen vereinfacht das "Entweichen", das durchgeführt werden muss, um das Programm in eine Shell einzugeben, erheblich.
Hier ist meine Version (umhüllt von einer Shell-Funktion - Sie können diese in (z. B.) Ihre einfügen .bashrc
, um sie in Ihren Shells verfügbar zu machen):
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
Eine Datei, die mit diesem Skript in die Zwischenablage verschoben wurde, kann dann in Finder eingefügt werden, um die Datei in einen anderen Ordner zu kopieren.
osascript kann auch als Hash-Bang-Interpreter verwendet werden (seit 10.5). Fügen Sie dies in eine Datei ein (zB file-to-clipboard
)
#!/usr/bin/osascript
on run args
set the clipboard to POSIX file (first item of args)
end
Machen Sie die Datei ausführbar ( chmod +x /path/to/where/ever/you/put/file-to-clipboard
). Dann führe es so aus:
/path/to/where/ever/you/put/file-to-clipboard ~/Desktop/ded.html
Wenn es in einem Verzeichnis im PATH gespeichert ist, können Sie den Pfad zur „Skript“ -Datei weglassen.
set the clipboard to {one,two}
(obwohl ein anderes AppleScript-Programm die Liste erfolgreich extrahieren kann). Die StandardAdditions- Zwischenablage-Befehle können auf einzelne Elemente beschränkt sein.
Es gibt keine Möglichkeit, das, was Sie versuchen, über die Befehlszeile zu erreichen. Apple bietet die Tools pbcopy
und pbpaste
an, um das Kopieren von Text zu ermöglichen. Mit diesen Tools können Sie jedoch keine Datei in dem von Ihnen gewünschten Sinne kopieren.
Ohne auf zu viele technische Details einzugehen, kopieren Sie beim "Kopieren" einer Datei im Finder ⌘Cnicht die Datei selbst, sondern verweisen lediglich auf die Datei in der Zwischenablage und markieren sie als Dateireferenz. Wenn eine Anwendung diesen Verweis beim Einfügen erhält, ist sie dafür verantwortlich, die Dinge zu sortieren, herauszufinden, was Sie eingefügt haben, und letztendlich mit der Datei zu arbeiten, wie es passt. Wenn Sie eine Datei im Finder kopieren, wird der Pfad zu der Datei in einer bestimmten Weise in einer bestimmten Zwischenablage gespeichert. Beim Einfügen wird dieser Dateipfad empfangen und es wird bekannt, dass eine neue Datei mit dem Inhalt der Datei erstellt wird alte (kopieren Sie eine Datei in die Zwischenablage, löschen Sie sie, versuchen Sie, sie an einer anderen Stelle einzufügen und sehen Sie, was zum Beispiel passiert).
In diesem Sinne des Kopierens und Einfügens reichen die verfügbaren Werkzeuge nicht aus, um das zu tun, was Sie benötigen. Wie von boehj vorgeschlagen, können Sie versuchen, den Inhalt der alten Datei in eine neue zu kopieren, dies funktioniert jedoch nur für Textdateien. Alle Binärdateien, die Sie erhalten, werden beschädigt (versuchen Sie dies mit einem Bild - es wird beschädigt).
Die herkömmliche Befehlszeile schlägt auf diese Weise fehl, aber Sie können einen Blick darauf werfen, ob Sie dies in AppleScript tun möchten, und das dann über die Befehlszeile mit aufrufen osascript
.
pbcopy
und pbpaste
mit einer HTML-Datei arbeiten wird, ist das nur, weil es zufällig eine Textdatei ist.
pbcopy -help
, erhalten Sie eine nicht produktionswürdige NSLog()
Zeile, die nur wiederholt wird 'pbcopy -help'
. Es hilft, ein Programmierer zu sein, um dies zu verstehen, weshalb ich es für notwendig hielt, sich einzuschalten.
Die folgende Funktion funktioniert nur mit einer einzelnen Datei und nicht mit mehreren Dateien. Es erfordert GNU, readlink
das Sie installieren können, indem Sie ausführen brew install findutils
.
copy(){ osascript -e{'on run{a}','set the clipboard to posix file a',end} "$(greadlink -f -- "$1")";}
Bearbeiten: Ich habe den tell app "Finder"
Block entfernt.
Bearbeiten 2: Zurückgesetzt auf eine Version, die relative Pfade unterstützt.
Hier ist ein einfaches Shell / Bash-Skript. Fügen Sie es einfach in Ihre .bashrc
Datei ein (oder ähnliches):
file-to-clipboard() {
if [ -z "$1" ]; then
echo "file path/name:"
read FILE
else
FILE="$1"
fi
pbcopy < "$FILE"
}
Mit Unterstützung der relativen Datei:
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'
}
Führen Sie clip_img path-to-file
den Befehl aus, um das Bild in die Zwischenablage zu kopieren. Dies path-to-file
kann relativ sein. Die Datei kann eine JPEG- oder PNG-Datei sein.
Sie können cat 'originfile'> 'destinationfile' in Unix-Umgebungen verwenden.
Kopieren der Ursprungsdatei Zieldatei unter Windows.