Posted on 2008-10-13 14:50
Prayer 閱讀(346)
評論(0) 編輯 收藏 引用 所屬分類:
日常技巧
cp的功能很多,由于我們常常進行一些數據的復制,所以也會常常用到這個命令。一般來說,如果去復制別人的數據(當然,該文件必須要有read的權限),總是希望復制到的數據最后是我們自己的,所以,在默認條件中,cp的來源文件與目標文件的權限是不同的,目標文件的擁有者通常會是命令操作者本身。舉例來說,范例二中,由于我是root身份,因此復制過來的文件擁有者與用戶組就改變成為root所有了。
由于具有這個特性,在進行備份的時候,某些需要特別注意的特殊權限文件,例如密碼文件(/etc/shadow)以及一些設置文件,就不能直接以cp來復制,而必須要加上 -a或者是 -p,這些可以完整復制文件權限的參數。另外,如果想要復制文件給其他用戶,也必須要注意文件的權限(包含讀、寫、執行以及文件擁有者),否則,其他人還是無法對你給的文件進行修改。特別要注意。
上面的第4個范例最有趣,使用 -l及 -s都會建立所謂的連接文件(link file),但是這兩種連接文件有不一樣的顯示。這是怎么一回事? -l就是所謂的硬連接(hard link), -s則是符號連接(symbolic link),筆者這里先不介紹,因為這涉及i-node的相關知識,我們還沒有介紹到,下一章再討論這個連接的問題。總之,由于cp有種種文件屬性與權限,所以,在復制時,必須要清楚地了解到:
• 是否需要完整地保留來源文件的信息?
• 來源文件是否為符號連接文件(symbolic link file)?
• 來源文件是否為特殊的文件,例如FIFO、套接字等?
• 來源文件是否為目錄?