一、Linux檔案清單指令 :ls
ls:list ,列出目錄内容
用法:ls [-aAdhl] //ls 的參數很多,以下是常用的幾種
不加參數,直接 ls ,可列出目錄的内容,包括檔案和子目錄的名稱。
-a :列出全部的檔案,包括隐藏的目錄和隐藏的檔案(以.開頭的檔案)
-A :列出全部的檔案,包括隐藏的目錄和檔案(但不包括 . 與 .. 這兩個目錄)
-d :僅列出目錄本身,而不是列出目錄内的檔案資料
-h :将檔案容量以人類較易讀的方式(例如GB、KB等) 列出來
-l :列出檔案并顯示檔案的屬性和權限等資訊
審視上圖可以發現利用ls -h ,很容易就看懂檔案有多大了;
-l會顯示檔案的屬性和權限等資訊,通常和其他參數一起使用,比如ls -ld 、ls -lh,能夠更直覺地觀察到檔案的各項等資訊
二、Linux檔案拷貝指令:cp常見用法
cp:copy 拷貝
用法:cp [-adfilprsu] 源檔案 目标
不加參數,直接 cp 源檔案 目标 (目标可以是檔案名也可以是目錄名)
-a :盡可能将檔案狀态、權限等資料都照原狀予以複制。
-r :若 source 中含有目錄名,則将目錄下之檔案亦皆依序拷貝至目的地。
-f :若目的地已經有相同檔名的檔案存在,則在複制前先予以删除再行複制。
在預設的條件中,cp的源檔案與目的檔案的權限是不同的,目的檔案的所有者會是執行指令的使用者。
-u :差異複制,常用在備份裡面
1.以root身份,将/etc/passwd檔案複制到/tmp下
2.變換目錄到/tmp,并将/var/log/wtmp 複制到/tmp觀察屬性
實際上,在不加任何選項的情況下直接cp,檔案的某些屬性/權限會發生變化
為了将檔案的所有特性都複制過去怎麼辦,可以加一個 –a 參數,如下圖:
預設情況下,cp的來源檔和目的檔的權限是不同的,目的檔的擁有者通常會是指令操作者本身,就如上面的看到的一樣,用root身份複制過來的檔案擁有者和群組就變成root所有了。
3.将/etc/這個目錄下的所有内容複制到/tmp底下
如上圖可以發現,對于目錄不能直接複制,需要加-r參數
4.cp -f 參數
若目的地已經有相同檔名的檔案存在,則在複制前先予以删除再行複制,其實就是force的意思,強制複制,預設是需要詢問的
5.cp -u參數:
cp -u用于增量備份,當你做備份的時候,cp -u隻會複制那些有新增或者已經有變化的檔案,相同屬性并存在的檔案不會再重新複制,大大的提供了備份速度。
這裡為了測試,先在/tmp/test 目錄下建立1.txt,2.txt兩個檔案,将其複制到/tmp/123目錄中,然後再次在/tmp/test 目錄下建立3.txt檔案,再次複制到/tmp/123下面,分别用不加 –u參數和用-u參數做對比。
建立test目錄
/tmp/test 下建立1.txt,2.txt
建立目錄123,将1.txt,2.txt複制到/tmp/123目錄中,然後再次在/tmp/test 目錄下建立3.txt檔案,再次複制到/tmp/123下面,分别用不加 –u參數和用-u參數做對比。
當沒用-u參數時,cp會将之前的檔案從新複制,所有會詢問是否覆寫之前的檔案,而當添加了 -u 參數之後,cp隻複制了新增的 3.txt 過去,因為之前目标目錄沒有3.txt檔案,是以并沒有詢問是否替換。即cp -u隻會複制目标目錄中沒有的檔案。
三、檔案移動指令 :mv
mv:move 移動檔案,還有重命名的作用
用法:mv [-fiu] source destination
-f:強制移動,不會出現警告資訊
-i:互動模式,移動之前詢問你
-u:目标存在的時候,隻有source比較新才會更新
用法和cp指令差不多,差別在于一個是複制,一個是剪切。
切換到/tmp 目錄下,用touch建立一個test.txt,然後用mv 重命名為456.txt
四、檔案或者目錄删除指令:rm
rm:remove 移除
用法:rm [-fir] 檔案或目錄
不加參數,直接用rm 檔案,可以删除檔案
-f:強制删除,不會出現警告資訊
-i:互動模式,删除之前詢問你
-r:遞歸删除,最常用在目錄的删除,很危險的參數
例:删除我們之前在/tmp/test目錄下建立的1.txt ,2.txt,3.txt 和/tmp/123目錄,分别用以上不同的參數
如上圖,不加參數直接删除檔案或用rm -i時,會詢問是否删除,rm -f會強制删除,不會詢問。
不加參數不能删除目錄,加-r但沒有-f參數,會詢問是否删除。
注:詢問時,如果不回答y直接回車,将預設no
利用rm -rf 删除test目錄,會發現沒有任何提示:
注:rm -rf 是很危險的參數,慎用!
五、touch指令:
嚴格來說,它是用來修改檔案的時間記錄的。這裡我們可以用它來建立一個空檔案。