[AppleScript]アイコンのキャッシュを削除(リビルド)する
OSXのデザイン環境だと
主なトラブルって事になると
フォント
アクセス権
機能拡張(Extensions kext系)
ハードウェアや物理的なトラブル
そして
各種のアップデートに付随する事象
(最近では10.12のPDFkitはヒドイ…)
って
感じになりますが
OSとアプリ側の『なんでもキャッシュして高速化しよう』が
起因している事も結構あります。
OS フォント 機能拡張 アプリケーション メタデータと
本当に色々な物が高速化のためキャッシュされます。
キャッシュの内容と実際の内容が同じなら問題ないのですが
時として、アプリやコマンドがクラッシュしたり、バグがあったりで
差異が出る事があります。
まぁ、コレばっかりは、防ぎようが無いので…
キャッシュを再構築する事になります。
(*
ReBuildIconCache.scpt
20170121 初回作成
OSXのアイコンのキャッシュを削除します。
↓
自動でリビルドされます
ランチサービスも初期化しますので
ファイルを開く時に『○○で開きます』とFinderが応答します。
要管理者権限
*)
---初期化
set theCmdCom to "" as text
---キャッシュファイルを削除
try
---コマンドライン整形
set theCmdCom to "sudo find '/private/var/folders/' -name com.apple.dock.iconcache -exec rm {} \\;" as text
---コマンド実行
do shell script theCmdCom with administrator privileges
end try
---アイコンサービスを削除
try
---コマンドライン整形
set theCmdCom to "sudo find '/private/var/folders/' -name com.apple.iconservices -exec rm -rf {} \\;" as text
---コマンド実行
do shell script theCmdCom with administrator privileges
end try
---アイコンサービスを削除
try
---コマンドライン整形
set theCmdCom to "sudo mv '/Library/Caches/com.apple.iconservices.store' '/tmp'" as text
---コマンド実行
do shell script theCmdCom with administrator privileges
end try
---アプリケーションフォルダに『偽』アプリを作成
try
---コマンドライン整形
set theCmdCom to "sudo mkdir -p '/Applications/CachesApp.app/Contents'" as text
---コマンド実行
do shell script theCmdCom with administrator privileges
end try
---『偽』のインフォファイルを作成
try
---コマンドライン整形
set theCmdCom to "sudo touch '/Applications/CachesApp.app/Contents/Info.plist'" as text
---コマンド実行
do shell script theCmdCom with administrator privileges
end try
set theComent to "この後少し時間がかかる処理になります。途中終了しないで一服して待ってください" as text
---ランチサービスを初期化
try
---コマンドライン整形
set theCmdCom to "'/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister' -kill -seed\n" as text
---コマンド実行
log theComent
do shell script theCmdCom
end try
---ドックを再起動
try
---コマンドライン整形
set theCmdCom to "killall Dock" as text
---コマンド実行
do shell script theCmdCom
end try
---ファインダー再起動
try
---コマンドライン整形
set theCmdCom to "killall Finder" as text
---コマンド実行
do shell script theCmdCom
end try
---『偽』アプリをtmpに移動して次回削除させる
try
---コマンドライン整形
set theCmdCom to "sudo mv '/Applications/CachesApp.app' '/tmp'" as text
---コマンド実行
do shell script theCmdCom with administrator privileges
end try
return "処理が終了しました"
| 固定リンク
「OSX」カテゴリの記事
- [Shortcuts.app]管理者で実行(2021.11.18)
- [OS12]UniqueID UID を取得する(2021.11.08)
- [OS12]文字ビューアを出す(文字パレット)(2021.11.07)
- macOS 12 システム環境設定 パスワード(2021.10.26)
- [OS11]書類“〓〓〓〓〓〓”を保存できませんでした。ファイルがロックされています。(2021.10.12)