Wo werden Zwischenablagedaten gespeichert?

11

Gibt es eine aktuelle Datei, in der die Daten gespeichert werden, während ich etwas in meiner Zwischenablage habe?

Tomulent
quelle

Antworten:

14

Pasteboard wird von pbsProzess X unter OS X verarbeitet. Dinge, die kopiert werden, werden im pbsAdressraum gespeichert . Mehr dazu finden Sie im Artikel zu Apple Pasteboard Server .

Unabhängig davon, ob die Daten zwischen Objekten in derselben Anwendung oder zwei verschiedenen Anwendungen übertragen werden, ist die Schnittstelle in einer Cocoa-Anwendung dieselbe: Ein NSPasteboard-Objekt greift auf ein gemeinsam genutztes Repository zu, in dem sich Autoren und Leser treffen, um Daten auszutauschen. Der als Pasteboard-Eigentümer bezeichnete Writer legt Daten auf einer Pasteboard-Instanz ab und fährt fort. Der Leser greift dann asynchron auf das Pappkarton zu einem nicht festgelegten Zeitpunkt in der Zukunft zu. Zu diesem Zeitpunkt ist das Writer-Objekt möglicherweise nicht mehr vorhanden. Beispielsweise hat ein Benutzer möglicherweise das Quelldokument geschlossen oder die Anwendung beendet.

Folglich wird beim Verschieben von Daten zwischen zwei verschiedenen Anwendungen und daher zwei verschiedenen Adressräumen ein dritter Speicherraum beteiligt, so dass die Daten auch ohne die Quelle bestehen bleiben. NSPasteboard bietet Zugriff auf einen dritten Adressraum - einen Pasteboard-Serverprozess (pbs) -, der immer im Hintergrund ausgeführt wird. Der Pasteboard-Server verwaltet eine beliebige Anzahl einzelner Pasteboards, um zwischen mehreren gleichzeitigen Datenübertragungen zu unterscheiden.

Mateusz Szlosek
quelle
5

Wie Mateusz betonte, gibt es keine Datei mit diesen Informationen. Sie können das Pasteboard jedoch verwenden pbcopyund pbpastebearbeiten.

Kopiert beispielsweise ls | pbcopydie Ausgabe (stdout) von lsauf das Pasteboard.

Manpage für pbcopy.

Aglasser
quelle
3

Der Pasteboard-Server-Prozess ist dies pboard nicht pbs . Sie können dies überprüfen, indem Sie die Manpages für beide überprüfen.

Jetzt, da wir den richtigen Prozess kennen, können wir:

  1. Aktivitätsmonitor laden
  2. Suche nach dem pboardProzess
  3. Informationen erhalten Sie mit cmd+i
  4. Ansicht Offene Dateien und Ports

Wir können sehen, dass die einzigen Dateien, die es geöffnet hat, sich selbst, dyld und der dyld-Cache sind.

Geben Sie hier die Bildbeschreibung ein

Matt Sephton
quelle
Es scheint, dass Sie richtig sind. Ich habe die Console.app geöffnet und nach dem Kopieren erhalte ich Protokolle vom pboardProzess. Seltsam, dass die Informationen auf der Appe-Website falsch sind. +1
Mateusz Szlosek
1
@MateuszSzlosek ja es ist seltsam. Ich habe es gemeldet, aber es wurde bisher nicht geändert.
Matt Sephton