Wenn Sie Text in einer App auswählen (z. B. Safari, Chrome oder eine andere App, die das Ziehen von Text ermöglicht) und die Auswahl in ein Finder-Bedienfeld ziehen, wird im Bedienfeld eine Datei mit einer unsichtbaren .textClipping
Erweiterung erstellt. Die Erweiterung kann je nach Ihren Einstellungen im Finder sichtbar sein oder nicht.
Ursprünglich ging ich davon aus, dass es sich bei der Datei um einfachen Text handelt, und versuchte, sie umzubenennen, um eine .txt
Erweiterung hinzuzufügen, aber ein Doppelklick öffnet sie immer noch mit Finder.
Dann habe ich den Dateityp überprüft:
file 'some text.textClipping'
>> some text.textClipping: Apple binary property list
cat
-ing zeigt es eine Kopfzeile bplist00?XUTI-Data?
gefolgt von lesbarem Text.
Ich habe es versucht:
mv 'some text.textClipping' 'some text.txt'
aber auch danach öffnet es sich immer noch mit dem Finder und nicht mit der zugehörigen App für die .txt
Dateien.
Eine weitere „Seltsamkeit“ ist, dass das Ziehen einer .textClipping-Datei in das Terminal – das ich manchmal zum Einfügen des vollständigen Pfads verwende – den unerwarteten Effekt hat, dass der Inhalt der Datei anstelle ihres Pfads eingefügt wird.
Ich wünschte, ich könnte .textClipping
Dateien verwenden, um schnell Snippets aus Webseiten und anderen Apps zu erstellen, aber aus offensichtlichen Gründen möchte ich vermeiden, dass die Snippets in einem Apple-eigenen Binärformat gespeichert werden.
Gibt es eine Möglichkeit, die Snippets in ein tragbares Format, z. B. reinen Text, zu konvertieren? Wie kommt es, dass sich diese Art von Dateien anders verhält als andere? Gibt es eine erweiterte Dateieigenschaft? Wie kann man es dann entfernen, damit die Dateien nicht mehr "besonders" sind?
Weiteres Googeln über Apples binäre Eigenschaftslisten führte mich zu einem Versuch plutil -convert xml1 note.textClipping
, der eine XML-Datei mit dem lesbaren Text des Snippets als UTF-8-Text und dann base64-codierte Versionen desselben Textes in UTF-16, Mac-Plain und HTML erzeugt.
Selbst nach der Konvertierung des Binärformats in das XML-Format öffnet der Finder die Datei immer noch in seinem eigenen Viewer, unabhängig davon, welche Erweiterung eingestellt ist (z . B. .plist
oder .xml
).
Beim Ausführen /bin/ls -al
im Ordner wird @
neben dem Dateinamen ein angezeigt, das darauf hinweist, dass die Datei erweiterte Attribute hat, sodass es so aussieht, als würden sie das „besondere“ Verhalten im Finder verursachen.
Diese Antwort veranlasste mich, es zu versuchen
xattr -l note.plist
was zeigt, dass ein Teil des Inhalts der Notiz als erweiterter Attributschlüssel gespeichert ist.
Und schließlich verwandelte das Löschen aller erweiterten Attribute die Datei in eine "normale" Datei, sodass sie jetzt mit der zugehörigen App geöffnet wird:
xattr -c note.plist
Der obige Befehl gilt für eine einzelne Datei, um erweiterte Attribute für alle Dateien im aktuellen Ordner zu entfernen:
xattr -rc .
Erweiterte Attribute können in einigen Fällen nützlich sein – wenn Sie beispielsweise eine Datei mit Safari oder Chrome heruntergeladen haben, wird die ursprüngliche URL als erweitertes Attribut gespeichert, das Sie sehen können,
xattr -l myfile.zip
indem Sie im Finder mit der rechten Maustaste auf eine Datei klicken und Informationen abrufen > The Die URL wird unter Weitere Informationen > Woher angezeigt. (Ein weiterer Grund, wget nicht zu verwenden, wenn Sie den Ursprung der Datei verfolgen möchten.)
Ein winziges Python3-Snippet, das als Schnellaktion im Finder mit Hilfe der ootb Automator.app hinzugefügt werden kann (Neu > Schnellaktion > Suchen und auf das rechte Arbeitsfeld ziehen )Run Shell Script .
import plistlib
import sys
from pathlib import Path
clippath = Path(sys.argv[1])
with clippath.open('rb') as fi:
plist = plistlib.load(fi)
utf8text = plist['UTI-Data']['public.utf8-plain-text']
html = plist['UTI-Data']['public.html']
with clippath.with_suffix(".txt").open(mode='w', encoding='utf-8') as ft:
ft.write(utf8text)
with clippath.with_suffix(".html").open(mode='wb') as ft:
ft.write(html)
So muss das Snippet im Automator aussehen (vorausgesetzt, Sie haben python3 in installiert /usr/local/bin/python3
):
Wenn Sie im Automator auf Speichern klicken , werden Sie nach einem Namen gefragt (z . B. Convert Clipping
). Klicken Sie nach dem Speichern mit der rechten Maustaste auf eine Datei im Finder und wählen Sie Quick Actions> aus Convert Clipping. Es werden zwei neue Dateien erstellt .txt
und .html
(wenn Sie Ausschnitte aus einer Webseite erstellen, behält die HTML-Version Links bei).