Trong hầu hết các ứng dụng , các tài liệu gần đây dành riêng cho ứng dụng nằm trong một tệp có tên:
~/Library/Preferences/com.company.application.LSSharedFileList.plist
Để liệt kê tất cả các tệp này trong Terminal, nhập thông tin sau:
ls -Ad Library/Preferences/* | grep LSSharedFileList
Trên Mac OS X 10.6, các tệp này (thường) ở định dạng nhị phân.
Sử dụng Trình chỉnh sửa danh sách tài sản (Công cụ phát triển của Apple / Xcode 3) hoặc Xcode 4 để xem và chỉnh sửa chúng.
Chúng được đọc lại khi ứng dụng khởi chạy, không phải trong khi nó đang chạy. Bạn cần đóng ứng dụng trong khi chỉnh sửa tập tin này.
Tôi đoán là tôi đã chán ...
#!/usr/bin/env bash
mode=$2
if [ -z "$mode" ] ; then
echo "Usage:"
echo "$0 <filename> ls - list recent file entries in specified *.LSSharedFileList.plist"
echo "$0 <filename> rm <idx> - remove recent file entry with given index from specified plist"
exit 1
fi
if [ "$mode" != "ls" ] && [ "$mode" != "rm" ] ; then
echo "second argument must be one of [ls, rm]"
exit 1
fi
file=$1
if [ -z $file ] ; then
echo "Need argument (recent items plist file)!"
exit 1
fi
if [ ! -f $file ] ; then
echo "File $file does not exist!"
exit 1
fi
if [ "$mode" = "ls" ] ; then
i=0
cont=1
while [ $cont ] ; do
recentfilename=$( /usr/libexec/PlistBuddy -c "Print RecentDocuments:CustomListItems:$i:Name" $file 2>/dev/null )
if [ "$?" -ne "0" ] ; then
cont=
else
echo "$i - $recentfilename"
i=$(( $i + 1 ))
fi
done
fi
if [ "$mode" = "rm" ] ; then
i=$3
if [[ $i =~ ^-?[0-9]+$ ]] ; then
# argument is integer
$( /usr/libexec/PlistBuddy -c "Delete RecentDocuments:CustomListItems:$i" $file )
else
echo "Expected integer, got $i as third argument"
exit 1
fi
fi
Sử dụng:
$ ./editrecent.sh
Usage:
./editrecent.sh <filename> ls - list recent file entries in specified *.LSSharedFileList.plist
./editrecent.sh <filename> rm <idx> - remove recent file entry with given index from specified plist
$ ./editrecent.sh Library/Preferences/com.macromates.textmate.LSSharedFileList.plist ls
0 - rcd
1 - artifactory.sh
2 - py.py
3 - iTunes Music Library.xml
4 - iTunes Library.xml
5 - gradle-proxy-support.diff
6 - DefaultGradlePropertiesLoader.java
7 - DefaultGradlePropertiesLoader-proxy.java
8 - gradle-proxy-support.patch
9 - DefaultKeyBinding.dict
10 - DefaultKeyBindings.dict
$ ./editrecent.sh Library/Preferences/com.macromates.textmate.LSSharedFileList.plist rm 3
$ ./editrecent.sh Library/Preferences/com.macromates.textmate.LSSharedFileList.plist ls
0 - rcd
1 - artifactory.sh
2 - py.py
3 - iTunes Library.xml
4 - gradle-proxy-support.diff
5 - DefaultGradlePropertiesLoader.java
6 - DefaultGradlePropertiesLoader-proxy.java
7 - gradle-proxy-support.patch
8 - DefaultKeyBinding.dict
9 - DefaultKeyBindings.dict