Filesystem Hierarchy Standard 文件系統(tǒng)層次化標準(以下簡稱FHS)
FHS為類UNIX操作系統(tǒng)的文件目錄結(jié)構(gòu)制定了一套標準,目的是讓用戶預知文件或目錄的存放位置展箱。UNIX操作系統(tǒng)的常見目錄結(jié)構(gòu)如下所示埃仪。
/ :根目錄榨惠,以斜杠表示烂琴,其他所有文件和目錄在根目錄下展開丸升。
/bin :"binary"(二進制的) 的簡寫古话,存放提供用戶級基礎(chǔ)功能的二進制文件,如ls牵触、ps等淮悼。
/boot :存放能使系統(tǒng)成功啟動的所有文件。iOS中此目錄為空揽思。
/dev :"device"的簡寫袜腥,存放BSD設備文件。每個文件代表系統(tǒng)的一個塊設備或字符設備钉汗,一般來說羹令,“塊設備”以塊為單位傳輸數(shù)據(jù),如硬盤损痰;而“字符設備”以字符為單位傳輸數(shù)據(jù)福侈,如調(diào)制解調(diào)器。
/sbin :"system binaries"的簡寫卢未,存放提供系統(tǒng)級基礎(chǔ)功能的二進制文件肪凛,如netstat、reboot等辽社。
/etc :"Et Cetera"的簡寫伟墙,存放系統(tǒng)腳本及配置文件,如passwd爹袁、hosts等远荠。在iOS中,/etc是一個符號鏈接失息,實際指向/private/etc譬淳。
/lib:存放系統(tǒng)庫文件、內(nèi)核模塊及設備驅(qū)動等盹兢。iOS中此目錄為空邻梆。
/mnt:"mount"的簡寫,存放臨時的文件系統(tǒng)掛載點绎秒。iOS中此目錄為空浦妄。
/private:存放兩個目錄,分別是/private/etc和/private/var。
/tmp:臨時目錄剂娄。在iOS中蠢涝,/tmp是一個符號鏈接,實際指向/private/var/tmp阅懦。
/usr:包含了大多數(shù)用戶工具和程序和二。/usr/bin包含那些/bin和/sbin中未出現(xiàn)的基礎(chǔ)功能,如nm耳胎、killall等惯吕;/usr/include包含所有的標準C頭文件;/usr/lib存放庫文件怕午。
/var:"variable"的簡寫废登,存放一些經(jīng)常更改的文件,比如日志郁惜、用戶數(shù)據(jù)堡距、臨時文件等。其中/var/mobile和/var/root分別存放了mobile用戶和root用戶的文件兆蕉,是重點關(guān)注的目錄吏颖。
UNIX系統(tǒng)文件權(quán)限簡介(UNIX一切皆文件:讀寫普通文件、目錄恨樟、設備、socket疚俱、管道劝术、CPU信息、進程信息等)
系統(tǒng)用3位(bit)來表示文件的權(quán)限呆奕,從高位到低位分別是r(read)權(quán)限养晋、w(write)權(quán)限,以及x(execute)權(quán)限梁钾。文件與用戶的關(guān)系存在以下三種可能性:
此用戶是屬主用戶(文件所有者的權(quán)限)
此用戶不是屬主用戶绳泉,但在屬主組里(組用戶權(quán)限)
此用戶既不是屬主用戶,又不在屬主組里(Other用戶權(quán)限)
rwx r-x r--
111 101 100
所有者 屬組 其他
用3*3位來表示一個文件的權(quán)限姆泻,如果某一位為1零酪,則這一位代表的權(quán)限生效,否則無效拇勃。
例如四苇,111101101代表rwxr-xr-x,即該文件的屬主用戶擁有r方咆、w月腋、x權(quán)限,而屬主組和其他所有人只具有r和x權(quán)限;
同時榆骚,二進制的111101101轉(zhuǎn)換成十六進制是755片拍,也是一種常見的權(quán)限表示法。
可以使用chmod 命令修改文件權(quán)限妓肢,如 chmod 755 filename
iOS的獨有目錄
/Applications:存放所有的系統(tǒng)App和來自于Cydia的App捌省,但不包括StoreApp。
/Developer:如果一臺設備連接Xcode后被指定為調(diào)試用機职恳,Xcode就會在iOS中生成這個目錄所禀,其中會含有一些調(diào)試需要的工具和數(shù)據(jù)。
/Library:存放一些提供系統(tǒng)支持的數(shù)據(jù)放钦。其中/Library/MobileSubstrate下存放了所有基于CydiaSubstrate(原名MobileSubstrate)的插件(如:tweak編寫的插件)色徘。
/System/Library:iOS文件系統(tǒng)中最重要的目錄之一,存放大量系統(tǒng)組件操禀。
/System/Library/Frameworks和/System/Library/PrivateFrameworks:存放iOS中的各種framework
/System/Library/CoreServices里的SpringBoard.app:iOS桌面管理器(類似于Windows里的explorer)褂策,是用戶與系統(tǒng)交流的最重要中介。
/User:用戶目錄(其實就是mobile用戶的home目錄)颓屑,實際指向/var/mobile斤寂,這個目錄里存放大量用戶數(shù)據(jù),比如:
/var/mobile/Media/DCIM下存放照片揪惦;
/var/mobile/Media/Recordings下存放錄音文件遍搞;
/var/mobile/Library/SMS下存放短信數(shù)據(jù)庫;
/var/mobile/Library/Mail下存放郵件數(shù)據(jù)器腋。
/var/mobile/Containers溪猿,存放StoreApp。值得注意的是纫塌,App的可執(zhí)行文件在bundle與App中的數(shù)據(jù)目錄被分別存放在/var/mobile/Containers/Bundle和/var/mobile/Containers/Data這兩個不同目錄下诊县。其中/var/mobile/Containers/Data是我們常用的應用沙盒目錄的起始目錄:
NSString *directory = NSHomeDirectory(); //獲取沙盒根目錄