Ich möchte einen automatisierten Weg für die Archivierung von Dateien in OS X Lion einrichten. Unter Archivierung verstehe ich die Verwendung der HFS + -Komprimierungsfunktion für einen bestimmten Ordner und mache jede Datei, die ich in diesen Ordner verschiebe, automatisch komprimiert. Ich denke darüber nach, damit große Dateien zu archivieren, die ich nicht oft verwende, ohne jedoch komprimierte Archive manuell erstellen und bei Bedarf extrahieren zu müssen.
Ich bin auf das Tool afsctool ( brew install afsctool
) gestoßen , das über die Befehlszeile die HFS + -Komprimierung auf einen Ordner und alle darin enthaltenen Dateien anwenden kann. Aber ich glaube, es aktiviert nicht die Komprimierung zukünftiger Dateien, die in den Ordner verschoben werden.
Das manuelle Verschieben von Dateien und das wiederholte Ausführen einer Befehlszeile ist unpraktisch. Aus diesem Grund würde ich vermutlich Automator / AppleScript benötigen, um dies in zwei Schritten auszuführen:
- Erstellen Sie ein Skript, mit dem Sie jede Datei in einen bestimmten Ordner verschieben können. Idealerweise eine Option namens Archiv, auf die Sie über einen Rechtsklick auf die Datei zugreifen können.
- Führen Sie eine Befehlszeilenanweisung aus
afsctool -c <folder>
, um die Komprimierung für alle neuen Dateien zu aktivieren, die gerade in den Ordner verschoben wurden.
Ich habe keine Erfahrung mit Automator oder AppleScript. Daher möchte ich wissen, wo ich anfangen soll, insbesondere, wie Aktionen zum Finder hinzugefügt werden und wie ein Befehlszeilentool über ein Skript ausgeführt wird.
Aktualisierung
@kopischke guide funktioniert gut. Das Skript selbst habe ich basierend auf der Antwort von @mark gemacht, aber mit afsctool -c <folder>
, anstatt ditto
. Hier ist das Skript: Es sollte eingefügt werden~/Library/Scripts/Folder Action Scripts
on adding folder items to this_folder after receiving these_items
repeat with i from 1 to number of items in these_items
try
set this_item to item i of these_items
tell application "Finder"
set the file_name to the POSIX path of this_item
end tell
set cmd to "/usr/local/bin/afsctool -c " & file_name
do shell script cmd
on error the error_message number the error_number
display dialog "Error: " & the error_number & ". " & the error_message buttons {"OK"} default button 1
end try
end repeat
end adding folder items to
Da afsctool bei MobileMe nicht mehr verfügbar ist, gibt es diimdeep / afsctool bei GitHub, derzeit 1.6.4.
Auch afsctool in MacPorts, wo sie das MobileMe-Problem kennen, aber möglicherweise die Quelle bei GitHub nicht kennen.
Antworten:
Die Antwort auf Ihre Frage besteht aus zwei Teilen.
So fügen Sie ein Finder-Kontextmenüelement zu "Archiv" -Dateien hinzu: Dies ist einfach durch Erstellen eines Automator-Dienstes zu erreichen (Mac OS X Automation bietet einen guten Überblick über die Funktionen der in OS X 10.6 eingeführten Automator-Dienste):
~/Library/Services
) als "Archiv".Sie haben jetzt ein neues Dienstmenü und einen neuen Kontextmenüeintrag (abhängig von der Anzahl der aktiven Dienste: entweder in der ersten Menüebene oder im Untermenü "Dienste") namens "Archiv", mit denen die ausgewählte Datei oder der ausgewählte Ordner auf Ihr Ziel verschoben wird Mappe.
So automatisieren Sie die HFS + -Komprimierung von Dateien, die zu Ihrem Zielordner hinzugefügt wurden: Es gibt verschiedene Möglichkeiten, dies zu erreichen. Sie können diesen Schritt natürlich auch einfach zu Ihrem Archivierungsservice hinzufügen. Der Nachteil dieses Ansatzes ist natürlich, dass keine Komprimierung angewendet wird, wenn Dateien oder Ordner zu einem Ordner außerhalb des Dienstes hinzugefügt werden. Ein besserer Ansatz wäre, alles im Ordner automatisch komprimieren zu lassen, ohne auf den Eingabevektor oder die Benutzerinteraktion angewiesen zu sein.
Wie Sie festgestellt haben, können Sie ein Komprimierungsprogramm jedes Mal ausführen lassen, wenn eine Datei oder ein Ordner zu Ihrem überwachten Ordner hinzugefügt wird:
do shell script
Befehl - siehe die verknüpfte Dokumentation;adding folder items
- das heißt, es reagiert auf neu hinzugefügte Dateien; die vollständige Referenz finden Sie im Applescript Language Guide ). . Die Konfiguration der Ordneraktionen finden Sie im Dienste-Menü der Ordner im Finder (auch im Kontextmenü).Eine Alternative zum gesamten Skriptansatz ist die Verwendung von LateNiteSofts Clustern - einer anderen kommerziellen Software, die nichts anderes tut, als die HFS + -Komprimierung automatisch auf den Inhalt überwachter Ordner anzuwenden (und bei Bedarf erneut anzuwenden).
quelle
@williamvoor: Das Skript schlägt mit Dateipfaden, die Leerzeichen enthalten, fehl, da
set the file_name to the POSIX path of this_item
es nicht richtig maskiert wird. Korrigieren Sie die entsprechende Codezeile:Erläuterung : Das Argument dateiname von afcstool ist in Anführungszeichen gesetzt, die im AppleScript-Code selbst mit einem Escapezeichen versehen sind, um korrekt an die Befehlszeilenumgebung übergeben zu werden.
Meta-Topic : Da mir Reputationspunkte fehlen, konnte ich an der entsprechenden Stelle (= zu @williamvoors eigenem Posting) keinen Kommentar abgeben. Deshalb poste ich diesen als eigene Antwort und bitte Sie, den Code in Ihrem Posting zu ändern. und gib mir einen Daumen hoch, damit ich genug Ansehen bekomme und in Zukunft direkt kommentieren kann. Vielen Dank!
Danach konnte ich oder und admin meinen Beitrag löschen.
quelle
Dieser Thread gibt ein Applescript an, das als Ordneraktion verwendet wird und Dateien beim Hinzufügen komprimiert
quelle
--hfsCompression
Option inditto
- gut! Ihre Antwort beantwortet jedoch nicht die Frage von OP nach der Integration eines sich bewegenden Skripts in Finder, sondern verschiebt Dateien, die im Archivordner abgelegt wurden, in einen anderen Ordner (was meiner Meinung nach eine Umleitung mehr wäre, als OP geplant hatte) und fordert zur Authentifizierung auf jedes Mal (ärgerlich in einem Automatisierungskontext).Cluster
MoreSpace-Ordner-Komprimierung
Präferenz
Von diesen beiden finde ich Cluster ausgereifter und benutzerfreundlicher - wahrscheinlich besser für diese Frage geeignet.
Mit Vorsicht fortfahren
In einem Edge-Fall kann es bei der Verwendung von AppleFSCompression durch Dritte zu unbeaufsichtigten Datenverlust kommen. Soweit ich weiß, handelt es sich um einen Fehler im Betriebssystem, der möglicherweise nur dort auftritt, wo außergewöhnlich wenig freier Speicherplatz vorhanden ist. Ich werde den Fehler an Apple weiterleiten.
quelle