1. 程式人生 > 實用技巧 >一、目錄以及檔案的基本操作

一、目錄以及檔案的基本操作

一、目錄以及檔案的基本操作

1、 pwd

顯示當前工作目錄的名稱

pwd -P 顯示連結的真實路徑

2、cd

切換當前工作目前

..上級目錄,.當前目錄,-上次切換的目錄

3、ls

顯示目錄與檔案資訊

  • -a 顯示所有的資訊,包括隱藏檔案和目錄
  • -d 顯示目錄本身的資訊,而非目錄下資料資訊
  • -h人性化顯示容量資訊
  • -l長格式顯示詳細資訊
  • -c顯示檔案或目錄屬性最後修改的時間
  • -u顯示檔案或目錄最後被訪問的時間
  • -t以修改時間排序,預設按檔名稱排序

4、touch

建立或修改檔案時間

touch hello.txt 如果hello.txt不存在,則已存在,則更新檔案所有的時間為當前系統時間

5、mkdir

建立目錄。

mkdir -p /tmp/test/jetty 建立多級目錄

6、cp

複製檔案與目錄

-r 遞迴,複製子檔案與子目錄,一般複製目錄時使用

  • cp /etc/hosts /tmp/ 複製檔案/etc/hosts/tmp/目錄下
  • cp /etc/hosts /tmp/host 複製檔案/etc/hosts/tmp目錄下並改名/host
  • cp -r /var/log/ /tmp/ 複製目錄/var/log//tmp/目錄下

7、rm

刪除檔案或目錄

  • -f不提示,強制刪除
  • -i刪除前,提示是否刪除
  • -r刪除目錄以及目錄下的所有內容

8、mv

移動(重新命名)檔案或目錄。

mv hello.txt hello.doc` 講`hello.txt`改名為`hello.doc

9、find

搜尋檔案或目錄

  • -empty 查詢空白檔案或者目錄
  • -group 按組查詢
  • -name 按照名稱查詢
  • -iname按名稱查詢,不區分大小寫
  • -mtime 按修改時間查詢
  • -size 按容量大小查詢
  • -type 按檔案型別查詢,檔案f、目錄d、裝置b,c、連結l
  • -user 按使用者查詢
  • -exec對找到的穩定執行命令
  • -a 並且
  • -o或者

eg:

  • find -name hello.doc 查詢當前目錄下名為hello.doc的文件
  • find /root-name "*.log" 查詢/root目錄下所有名稱以.log結尾的檔案
  • find -iname "Jacob" 不區分大小寫查詢檔案jacob
  • find / -empty 查詢/目錄下所有的空白文件
  • find / group tom 查詢/目錄下所屬組tom的文件
  • find / mtime -3 查詢/目錄下所有3天內被修改過的文件
  • find / mtime +3 查詢/目錄下所有3天前被修改的文件
  • find / mtime 2 查詢計算機中2天前被修改過的文件
  • find ./ -size+10M 查詢當前目錄下大於10MB的檔案
  • find ./ -type f 查詢當前目錄下的所有普通檔案,會把目錄下檔案也查出來
  • find / -user tom 查詢計算機中tom所用有的檔案
  • find ./ -size +1M -exec ls - l {} \; 查詢大於1MB的檔案後列出檔案的詳細資訊,\; 結尾符
  • find / -size +1M -a -type f 查詢計算中所有大於1MB的檔案

10、du

計算檔案或者目錄的容量

-h人性化顯示容量資訊

-s 僅顯示總容量

  • du /root 查詢/root目錄以及子目錄的容量資訊
  • du -sh /root 檢視/root所佔磁碟空間的總和

二、檢視檔案內容

1、cat

檢視檔案的內容

  • -b 顯示行號,空白行不顯示行號
  • -n顯示行號,包括空白行

2、more

分頁檢視檔案內容,通過空格鍵檢視下一頁,q鍵則退出檢視

3、less

分頁檢視檔案內容,空格下一頁、方向鍵 上下回翻、q鍵退出檢視

4、head

檢視檔案頭部內容,預設顯示前10行

-c nK 顯示檔案前nKB的內容

-n 顯示檔案前n行的內容

5、tail

檢視檔案的尾部內容,預設顯示末尾10行

  • -c nK 顯示檔案末尾nKB的內容
  • -n 顯示檔案末尾n行的內容
  • -f 動態顯示檔案內容,安裝Ctrl+C組合鍵退出

tail -100f /va/log/message.log 事實動檢視檔案末尾100行內容

6、wc

顯示檔案的行、單詞與位元組統計資訊

  • -c 顯示檔案位元組統計資訊
  • -l 顯示檔案行數統計資訊
  • -w 顯示檔案單詞統計資訊

eg:

  • wc /root/install.log 以此顯示檔案的行數、單詞數、位元組數
  • wc -c /root/install.log 顯示檔案的位元組資訊
  • wc -l /root/install.log 顯示檔案的行數
  • wc -w /root/install.log 顯示檔案單詞個數

7、grep

查詢關鍵詞並列印匹配的行

  • -i忽略大小寫
  • -v去反匹配
  • -w匹配單詞
  • --color 顯示顏色

eg:

  • grep th test.txttest.txt檔案中過濾出包含th
  • grep --color th test.txt 對匹配的關鍵詞顯示顏色
  • grep -i the test.txt 對過濾包含the的行,不區分大小寫
  • grep -w num test.txt 對過濾單詞num,不過過濾number
  • grep -v the test.txt 過濾不包含the關鍵詞的行

8、echo

顯示一行指定的文字

  • -n 不輸出行,預設echo輸出內容會換行

  • -e支援反斜線開始的轉義字元,遮蔽反斜線後面字元的原本含義

    如果使用-e選項,則可以識別如下字元序列的特許含義

\\ 反斜線

\a報警器

\b 退格鍵

\c 不生產格式輸出,預設echo會自動新增換行

\f輸入表單格式,換行後保留游標位置

\n 換行

\t 生成水平Tab

\v 生成垂直Tab

eg:

  • echo "Hello The Word" 直接輸出指定的字元
  • echo -e "\\" 預設echo無法輸出\符號
  • echo -e "\a" 計算機蜂鳴器會響一聲
  • echo -e "aa\b22" 回刪一個字元
  • echo -e "hello\c" 不換行,等同於-n`選項
  • echo -e "hello\fthe word" 表單格式
  • echo -e "hello\tthe world" 水平Tab鍵
  • echo -e "hello\vthe\vworld" 垂直Tab鍵

9、ls

建立檔案或目錄連線,軟連線可以跨分割槽,但原始檔不可刪除,硬連結不可以跨分割槽,但可以將原始檔刪除

  • ln -s /test/hello.txt /tmp/hi.txt 建立檔案的軟連結
  • ln -s /test/ /var/test 建立目錄軟連線
  • ln /test/hello.txt /test/hi.txt 建立檔案硬連結

rm /test/hello.txt 刪除原始檔後,連結檔案仍可以正常使用

三、壓縮及解壓

1、gzip

壓縮與解壓縮 -d解壓

  • gzip hello.txt 檔案壓縮後名為hello.txt.gz
  • gzip -d hello.txt.gz 解壓gz檔案

2、bzip2

  • bzip2 hello.txt 檔案壓縮後為hello.txt.bz2
  • bzip2 -d hello.txt.bz2 解壓bz2檔案

3、tar

打包與解包檔案

用法: tar 模式 [選項][路徑]...

模式

  • -c 建立打包檔案
  • --delete 從打包檔案中刪除檔案
  • -r 追加檔案至打包文件
  • -t 列出打包文件的內容
  • -x 釋放打包檔案
  • -v 詳細地列出處理的檔案

選項:

  • -C 指定解壓路徑
  • -f 指定打包後的檔名稱
  • -j 打包後通過bzip2格式壓縮
  • --remove-files 打包後刪除原始檔
  • -z 打包後通過gzip格式壓縮

eg:

  • tar -cf etc.tar /etc//etc/目錄打包儲存為etc.tar
  • tar -czf boot.tar.gz /boot//boot 目錄打包並壓縮為etc.tar.gz
  • tar cjf etc.tar.bz2 /tmp//tmp/目錄打包並壓縮為etc.tar.bz2
  • tar --delete etc/hosts -f etc.tar 將打包文件中刪除檔案hosts
  • tar -f etc.tar -r /root/install.log 追加檔案至打包文件`etc.tar中
  • tar -tf boot.tar.gz 檢視打包文件中檔案的資訊
  • tar -tvf etc.tar 檢視打包文件中檔案詳細資訊
  • tar -xzf boot.tar.gz 解壓gz格式的打包文件至當前目錄
  • tar -xzf boot.tar.bz2 解壓bz2格式的打包文件至當前目錄
  • tar -xvzf boot.tar.gz -C /tmp 指定解壓路徑為/tmp
  • tar -czvf mess.tar.gz /var/log/messages --removefiles 打包壓縮後刪除原始檔