Unix與Windows文件名不同之處

 一、 隱藏文件的表示方法不同。

 

  在Windows操作系統中,如果要將某個文件的屬性設置爲隱藏,那麼必須要點擊這個文件,然後右鍵選擇“隱藏”。然後才能夠將這個文件設置爲隱藏。即在一般的情況下是看不到用戶隱藏的文件。但是Unix操作系統下則不同。在Unix操作系統中,同Windows操作系統一樣,可以將某個文件夾或者文件隱藏。但是兩者的方式不同。在Unix操作系統中,是根據文件或者文件夾(目錄文件)的名字來控制的。即如果要把某個文件設置爲隱藏,那麼只需要在某個文件名字的開頭加上一個英文狀態下的點號即可。如果要將某個目錄文件設置爲隱藏,通力也只需要在目錄文件的名字前面即上一個英文狀態下的點號即可。如.Unix等等。這就表示這個文件夾是一個隱藏文件或者隱藏的文件夾。

  那麼該如何查看這個隱藏的文件或者隱藏的文件夾呢?這跟Windows操作系統又不同。在Unix操作系統中,如果要進入某個隱藏的文件夾,不需要像Windows操作系統那樣特殊的設置。只需要把文件名或者目錄文件名輸全即可。也即是說,要把那個.號也帶上。如要進入到上面設置的那個UNIX隱藏文件夾中,則只需要執行cd .UNIX命令即可。所以在Unix操作系統中,無論是設置隱藏文件或者隱藏目錄文件,還是查看這些文件,都是由一個英文狀態下的點號所控制的。爲此在Unix操作系統中要充分認識到這個點號的重要性。

二、 大小寫敏感程度不同。

  在Windows操作系統中,無論是文件還是文件夾,對於大小寫都是不敏感的。也就是說,Unix與UNIX是同一個文件或者文件夾。所以在Windows操作系統中,給文件夾或者目錄去名字的時候,不需要考慮大小寫的問題。這給操作帶來很大的方便。如在定義環境變量的時候,也不需要考慮大小寫的問題。把路徑全部小寫或者大寫都沒有問題。但是在Unix操作系統中則不同。在Unix操作系統中,無論是普通文件還是目錄文件,對於大小寫都是敏感的。即Unix與UNIX是兩個不同的文件或者目錄。雖然這個差異不是很大,但是影響卻很深遠。如在Unix中定義環境變量的時候,在輸入路徑時,大小寫就一個都不能夠錯誤。如果某個字符大小寫輸入有問題的話,那麼這個環境變量就不會起作用,因爲其指向了一個錯誤的位置。

  爲此在Unix操作系統中定義文件或者文件名字的時候,就需要特別的注意。通常情況下,除非有特殊的必要,筆者都建立對於普通的文件,最好都採用小寫的字符。對於系統文件或者目錄,採用大小的字符。無論是哪一種文件,有一個禁忌就是不要採用大小寫混合的方式來命名文件或者目錄。因爲一方面要輸入大小寫混合的目錄或者文件時,會很麻煩。其次在引用路徑時也容易出錯。爲此對於任何一種文件(普通文件、目錄文件、設備文件)名字,都最好採用全部大寫或者小寫的形式。另外在定義環境變量的時候,最好通過複製、粘貼的方式來爲環境變量指定路徑,以防止因爲大小寫輸入錯誤而導致環境變量不其作用。

  說到這個大小寫,最好有順便提醒一下。在定義環境變量的時候,這個變量名字的大小寫也是敏感的。在Windows操作系統中環境變量的大小寫不敏感,用戶將環境變量的名字輸入爲大小或者小寫都是同一個。但是在Unix操作系統中這個環境變量的大小寫也是敏感的。根據習慣,Unix操作系統中的環境變量一般都定義爲大寫。而普通的變量設爲小寫。這雖然是一個不成文的規則,但是系統工程師最好還是遵守。以減少大小寫敏感所帶來的煩惱。

三、 擴展名的要求不同。

  在Windows操作系統中,一般要求文件都必須有擴展名。操作系統是根據這個擴展名來關聯應用程序的。如text.txt,最後,.txt就是文件的擴展名。特別是對於一些腳本批處理程序,都要求以bat擴展名結尾。只有如此,操作系統纔會當作批處理程序來執行。不過在Unix操作系統中卻沒有這麼嚴格的要求。即使是普通文件,擴展名也是可有可無的。如默認情況下,sh是Unix操作系統下的可執行文件。但是如果工程師編寫的可執行文件不帶上這個擴展名,其也可以運行。這主要是兩個操作系統調用腳本程序的方法不同。在Windows操作系統的命令行窗口下,只要輸入腳本程序的全名(帶上擴展名),即可以運行這個腳本程序。但是在Unix操作系統的shell中,調用某個腳本程序的話,需要在這個腳本程序前面加上./等符號,表示讓系統執行這個程序。也即是說,他不是以擴展名來區分這是否是一個可執行的腳本程序。而是根據命令行的前綴來判斷。爲此在Unix操作系統中,對於擴展名沒有任何的規定。

 

  雖然Unix操作系統中對於擴展名沒有硬性的規定。但是在通常情況下筆者仍然建議用戶在建立普通文件的時候,最好還是加上擴張名。只有如此,看擴展名、而不用看文件的具體內容,就可以瞭解文件的類型。如一看到sh擴展名,就知道這是一個腳本文件。而不用再去看其裏面的內容。類似的,對於C語言源文件、文本文件等等最好都能夠加上一個擴展名,以示區別。

  四、 在文件名中可以帶有特殊字符。

  在Windows操作系統中,雖然也可以使用大部分字符來作爲文件名,但是對於一些特殊字符的使用,其有嚴格的限制。如對於一些具有特殊用途的字符/、*號等符號就不能夠成爲其文件名。不過在Unix操作系統中,在這方面就沒有這麼嚴格的要求。如在Unix操作系統中,text*.txt、text/tet.txt等文件名都是合法的。所以不考慮其他因素,在Unix操作系統中的文件基本上可以採用任何的字符。不過有些字符具有特殊的含義,如果將這些字符加入到文件名字中,可能對後續的操作會帶來不利的影響。

 

  如筆者一開始就談到的,英文狀態下的點號是一個文件數據的控制符號。如果在普通文件或者目錄文件名字的第一個字符是英文狀態下的點號,那麼就表示這是一個隱形的文件或則文件夾。爲此在定義文件時,除非有特殊的需要要把他們設置爲隱藏的,那麼不要以應爲狀態下的點號開頭。不過一個文件名字的後面可以帶上多個點號,即可以利用點號來區分。如student.num.txt。就表示一個學生學號的文本文件。如果在Windows操作系統中,會認爲這個文件有兩個擴展名。在第一次打開這個文件的時候,系統會提示用戶使用哪個軟件打開。不過在Unix操作系統中認爲這是合法的。

  雖然*、-等符號也可以作爲文件的名字。但是因爲其有一些特殊的含義,爲此在利用他們來給文件命名的時候,需要謹慎使用。如跟點號類似,最好不要以-符號作爲文件名字的第一個字符。因爲這個-符號在系統中表示命令的可選項。爲此在使用cat等命令操作這個文件時,系統會誤把文件名參數當作可選項來對待。結果發現沒有這個可選項而保錯。另外這個*符號,在系統中表示通配符。如果此時利用rm命令來刪除帶*好的文件名字,必須使用轉義字符。否則的話,會發生一些災難性的後果。爲此,筆者建議,雖然在Unix系統中可以使用一些特殊的符號作爲文件或者目錄的名字。但是除非有特殊的必要,最好在文件名字中不要包含特殊符號。否則的話,用戶很可能會因爲過度追求個性,而自討苦吃。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章