Re-Sparse: Den Sparse-Zustand einer Datei wiederherstellen
Grundsätzliches
Sparse-Dateien verlieren durch bestimmte Aktionen ihren Sparse-Zustand, wie z.B. Komprimieren und wieder entpacken als ZIP oder Kopieren auf ein Dateisystem, was Sparse nicht unterstützt. Mit dem dd Kommando kann der Sparse-Zustand wiederherstellt werden. Das AppleScript dupliziert alle ausgewählte Dateien und hängt dem neuen Dateinamen sparse an.
AppleScript
Dateiname: Re-Sparse.scpt
(*
Re-Sparse
Stellt den Sparse-Zustand einer Datei wiederher.
Copyright © 2024
Café MegaByte
*)
tell application "Finder"
activate
set l_selection to selection
-- Keine Datei gewählt?
if (count l_selection) = 0 then
beep
display dialog "Zuerst Datei(en) im Finder auswählen, dann das Skript starten." buttons {"Ok"} default button 1
return
end if
-- Alle ausgewählten Dateien verarbeiten
repeat with l_file in l_selection
-- AppleScript-Pfad in Unix-Pfad umwandeln
set l_path_source to POSIX path of (l_file as string)
set l_path_target to l_path_source & " sparse"
-- Sparse-Zustand wiederherstellen
try
do shell script "dd if='" & l_path_source & "' of='" & l_path_target & "' conv=sparse"
--Fehler?
on error l_err_msg number l_err_number
display dialog "Fehler: " & l_err_msg buttons {"Ok"} default button 1
return
end try
end repeat
-- Erfolgsmeldung
display dialog "Sparse-Zustand wiederhergestellt." buttons {"Ok"} default button 1
end tell