Nachtrag: Ich habe einen Fehlerbericht an Apple gesendet, siehe unten. Vielleicht hat Apple eine Lösung. Aber ich denke, einige erfahrene AppleScripter hier können innerhalb von Minuten eine Lösung finden. Wäre cool, wenn wir hier eine Lösung finden und diese der gesamten macOS-Community anbieten.
Finder / HFS+ / Dateisystem – Aktualisierung älterer Alias-Dateien auf reduzierte Dateigröße mit Batch-Prozess
EIN LANGZEITFEHLER WURDE ZUM GLÜCK BEHOBEN:
In macOS Sierra wurde die Dateigröße von Aliasen schließlich drastisch reduziert, von mehreren Megabyte in Mac OS X 10.7-10.11-Systemen auf nur noch etwa 1 KB jetzt in macOS Sierra 10.12. (Einfach, indem die Icon-Ressourcen weggelassen werden, die sowieso meistens überflüssig waren, da sie nur eine Kopie eines generischen Dateityp-Icons waren.)
BITTE BIETEN SIE AUCH EINE LÖSUNG FÜR DEN BUG LEGACY AN:
Je nachdem, wie stark Aliase auf einem System verwendet werden, besteht das Potenzial, für einige Benutzer mehrere GB einzusparen.
Ich schlage Apple vor, einen Batch-Prozess zur Reduzierung der Dateigröße von Legacy-Alias-Dateien anzubieten. Mit einer Option, die ursprünglichen Zeitstempel der Aliase beizubehalten, da sie in einigen Anwendungsfällen einen kritischen Informationswert haben können.
Dann können Sie eine einfache Finder-Suche durchführen, die Dateien Ihrer Wahl auswählen (alle oder nur bestimmte) und sie dann per Drag & Drop auf die Stapelverarbeitungs-App oder den Dateidienst oder den Finder-Menübefehl ziehen.
DERZEITIGE WORKAROUND MIT QUICKLOOK FUNKTIONIERT NUR TEILWEISE
Dann werden bestimmte Alias-Dateien neu erstellt. Aber nicht alles!
Funktioniert, aber nur manchmal: PDF, JPEG, ZIP, wenn BetterZip QuickLook-Plugin der Handler ist.
Von diesen werden nicht alle Aliase aufgefrischt.
Es scheint auch von der allgemeinen oder individuellen zugehörigen Anwendung der Datei abzuhängen (Finder-Einstellung "Öffnen mit", Uniform Type Identifier (UTI), TYPE/CREATOR-Ressourcenzweig) und welches QuickLook-Plugin den Dateityp verarbeitet.
Eine neu erstellte Datei hat eine drastisch reduzierte Dateigröße (ca. 1 KB). Leider verliert es seinen ursprünglichen Zeitstempel, erhält aber den aktuellen (entspricht /usr/bin/touch). Ich würde gerne den Alias-Zeitstempel beibehalten.
/Applications/Automator.app
use framework "Foundation" -- Cocoa-AppleScript
on run {input, parameters}
repeat with thisItem in input
tell application "Finder"
if kind of thisItem is "Alias" then -- alias file only
set parentPath to container of thisItem -- get the folder of this alias
set {label index:l, comment:c, modification date:m, creation date:cr, original item:origPath, name:n} to properties of (item thisItem)
if origPath is not missing value then -- not a breaking alias
set tagsList to (my tagsFor:(POSIX path of thisItem)) -- get the tags of the alias file (call an AppleScriptObjC handler)
delete thisItem -- move this alias to the trash
-- ** create an alias file **
set newAliasFile to make new alias at parentPath to origPath with properties {comment:c, creation date:cr, original item:origPath, name:n}
-- ** set the label ** (0 = no label)
if l is not 0 then set label index of newAliasFile to l
-- ** set the tags ** ({} = no tag)
if tagsList is not {} then (my setTags:tagsList forPath:(POSIX path of (newAliasFile as string))) -- call an AppleScriptObjC handler
-- ** change the modification date **
set modification date of newAliasFile to m
end if
end if
end tell
end repeat
end run
on tagsFor:posixPath -- Cocoa-AppleScript handler
set fileURL to current application's |NSURL|'s fileURLWithPath:posixPath
set {theResult, theTags} to fileURL's getResourceValue:(reference) forKey:(current application's NSURLTagNamesKey) |error|:(missing value)
if theTags = missing value then return {} -- no tags
return theTags as list
end tagsFor:
on setTags:tagList forPath:posixPath -- Cocoa-AppleScript handler
set fileURL to current application's |NSURL|'s fileURLWithPath:posixPath
fileURL's setResourceValue:tagList forKey:(current application's NSURLTagNamesKey) |error|:(missing value)
end setTags:forPath:
Hinweis : Der Batch-Prozess ist sehr transparent und Fehler können korrigiert werden. Die gelöschten Aliase werden in Ihren Papierkorb verschoben. Sollten Sie einen Fehler gemacht haben, wählen Sie die betreffende Alias-Datei aus dem Papierkorb und führen Sie Finder > Put back (cmd-backspace) aus. Dadurch wird die Datei wieder in ihren vorherigen übergeordneten Ordner verschoben und der übergeordnete Ordner in einem neuen Fenster geöffnet. Dann hat man den neu erstellten Alias und den Original-Alias mit dem Zusatz „copy“ nebeneinander und kann ggf. Korrekturen vornehmen.
Rory O’Kane