ℹ️ defaults 명령어는 타입을 지정하지 않으면 문자열이 기본이다.
$ defaults write <file> <key> <value>
$ /usr/libexec/PlistBuddy -c "Save" <file>
ℹ️ PlistBuddy 명령어의 내부 명령어는 대소문자를 구분하지 않는다.
$ defaults read <file> [key]
$ defaults export <file> -
$ /usr/libexec/PlistBuddy -c "Print [key[:(index|key1)]]" <file>
$ plutil -p <file>
$ plutil -convert <binary1|json|xml1> -o - <file>
ℹ️ "-" 값은 표준 출력을 의미한다.
$ defaults write <file> <key> [-type] <value>
$ /usr/libexec/PlistBuddy -c "Add <key> <type> <value>" <file>
$ plutil -insert <key> <-type> <value> <file>
ℹ️ 데이터 타입 명칭은 아래 표처럼 프로그램마다 다른 경우가 있다.
defaults | PlistBuddy | plutil |
---|---|---|
bool[ean] | bool | bool |
data | data | data |
date | date | date |
float | real | float |
int[eger] | integer | integer |
string | string | string |
$ defaults write <file> <key> '(value1, value2)'
$ defaults write <file> <key> -array [-type] value1 [-type] value2
$ /usr/libexec/PlistBuddy -c "Add <key> array" -c "Add <key:> <type> <value>" <file>
$ plutil -insert <key> -json '[1, 2, 3]' <file>
$ plutil -insert <key> -xml '<array><integer>1</integer><integer>2</integer></array>' <file>
$ defaults write <file> <key> -array-add [-type] <value>
$ /usr/libexec/PlistBuddy -c "Add <key:> <type> <value>" <file>
$ /usr/libexec/PlistBuddy -c "Add <key:index> <type> <value>" <file>
$ plutil -insert <key.index> <-type> <value> <file>
ℹ️ index 값은 0부터 시작한다.
$ defaults write <file> <key> '{<key1>=<value1>; <key2>=<value2>;}'
$ defaults write <file> <key> -dict <key1> [-type] <value1> <key2> [-type] <value2>
$ /usr/libexec/PlistBuddy -c "Add <key> dict" -c "Add <key:key1> <type> <value1>" -c "Add <key:key2> <type> <value2" <file>
$ plutil -insert <key> -json '{"key1":value1, "key2":value2}' <file>
$ defaults write <file> <key> -dict-add <key1> [-type] <value1>
$ /usr/libexec/PlistBuddy -c "Add <key:key1> <type> <value1>" <file>
$ plutil -insert <key.key1> <-type> <value> <file>
$ defaults write <file> <key> [-type] <value>
$ /usr/libexec/PlistBuddy -c "Set <key>[:(index|key1)] <type> <value>" <file>
$ plutil -replace <key>[.(index|key1)] <-type> <value> <file>
$ /usr/libexec/PlistBuddy -c "Copy <src_key> <dst_key>" <file>
$ defaults rename <file> <old_key> <new_key>
$ defaults delete <file> [key]
$ /usr/libexec/PlistBuddy -c "Delete <key>[:(index|key1)]" <file>
$ plutil -remove <key>[.(index|key1)] <file>
$ defaults import <file> <output>
$ /usr/libexec/PlistBuddy -c "Merge <other_file> [<key>]" <file>
$ /usr/libexec/PlistBuddy -c "Import <key> <file>"
ℹ️ output 값으로 표준 입력(-)을 사용할 수 있다.
$ defaults export <file> <output>
$ plutil -convert <binary1|json|xml1> -o <output> <file>
$ plutil -extract <key> <binary1|json|xml> <file>
ℹ️ output 값으로 표준 출력(-)을 사용할 수 있다.
macOS 또는 앱이 사용하는 설정 파일을 다룰 때 파일 경로가 아닌 도메인을 사용할 수 있기 때문에 설정 파일을 다루기에 적합하다.
$ defaults read ~/Library/Preferences/.GlobalPreferences.plist
$ defaults read NSGlobalDomain
$ defaults read -g
$ defaults read ~/Library/Preferences/com.google.Chrome.plist
$ defaults read com.google.Chrome
대화형 모드를 통해 사용하기 적합하다.
빈 파일을 생성하거나 배열 요소를 추가할 수 없다는 점을 제외하고는 가장 유용하다.