1. 程式人生 > >Linux基本命令——目錄/檔案相關操作

Linux基本命令——目錄/檔案相關操作

一、mkdir命令(建立目錄)

  1. -m 建立檔案時指定該檔案的許可權
    1. 建立預設許可權目錄
      [[email protected]_0_3_centos huan]# mkdir d1
      
    2. 建立指定許可權目錄
      [[email protected]_0_3_centos huan]# mkdir d2 -m 777
      
    3. 檢視目錄詳細資訊,注意許可權變化
      [[email protected]_0_3_centos huan]# ll
      total 8
      drwxr-xr-x 2 root root 4096 Nov  3 10:00 d1
      drwxrwxrwx 2 root root 4096 Nov  3 10:00 d2
      
  2. -p 若要建立的檔案已存在,則不進行任何操作,也不提示(不加這個引數建立重複檔案會有提示)
    1. 建立一個已經存在的目錄,不加引數 p
      [[email protected]_0_3_centos huan]# mkdir d2
      mkdir: cannot create directory ‘d2’: File exists
      
    2. 建立一個已經存在的目錄,加引數 p
      [[email protected]_0_3_centos huan]# mkdir d2 -p
      [[email protected]_0_3_centos huan]# 
      

      TIP:注意不管加不加引數,檔案並不會被覆蓋

  3. -v 列印操作日誌
    1. 建立一個已經存在的目錄,不加引數 v
      [[email protected]_0_3_centos huan]# mkdir d3 d4 
      [[email protected]_0_3_centos huan]# 
      
    2. 建立一個已經存在的目錄,加引數 v
      [[email protected]_0_3_centos huan]# mkdir d3 d4 -v
      mkdir: created directory ‘d3’
      mkdir: created directory ‘d4’
      

二、rm命令(刪除目錄)

  1. -r 刪除指定目錄下所有的檔案
  2. -f 刪除檔案時忽略對不存在的檔案的提示
  3. -i 每次刪除檔案時都提示
    [[email protected]_0_3_centos huan]# rm -ri d4
    rm: descend into directory ‘d4’? y
    rm: descend into directory ‘d4/f1’? y
    rm: descend into directory ‘d4/f1/f1’? y
    rm: remove directory ‘d4/f1/f1/f1’? y
    rm: remove directory ‘d4/f1/f1/f2’? y
    rm: remove directory ‘d4/f1/f1’? y
    rm: remove directory ‘d4/f1/f3’? y
    rm: remove directory ‘d4/f1/f2’? y
    rm: remove directory ‘d4/f1’? y
    rm: descend into directory ‘d4/d1’? y
    rm: descend into directory ‘d4/d1/d1’? y
    rm: remove directory ‘d4/d1/d1/d1’? y
    rm: remove directory ‘d4/d1/d1’? y
    rm: remove directory ‘d4/d1’? y
    rm: remove directory ‘d4/f3’? y
    rm: remove directory ‘d4/f2’? y
    rm: remove directory ‘d4’? y
    

    TIP:加上‘i’時別加‘f’引數,否則不會進行提示

  4. -I 在移除三個以上檔案之前或遞迴移除時提示一次
    [[email protected]_0_3_centos huan]# rm -Ir d4
    rm: remove 1 argument recursively? y
    

    TIP:加上‘I’時別加‘f’引數,否則不會進行提示

  5. -d 只刪除空目錄
    1. 建立一個已經存在的目錄,不加引數 f
      [[email protected]_0_3_centos huan]# rm -d d3
      rm: cannot remove ‘d3’: Directory not empty
      
    2. 建立一個已經存在的目錄,加引數 f
      [[email protected]_0_3_centos huan]# 	rm: cannot remove ‘d3’: Directory not empty
      

      TIP:可加‘f’引數,會進行提示

  6. -v 列印操作日誌
    1. 建立一個已經存在的目錄,不加引數 v
      [[email protected]_0_3_centos huan]# rm -rf d4
      [[email protected]_0_3_centos huan]# 
      
    2. 建立一個已經存在的目錄,加引數 v
      [[email protected]_0_3_centos huan]# rm -rfv d4
      removed directory: ‘d4/f1/f1/f1’
      removed directory: ‘d4/f1/f1’
      removed directory: ‘d4/f1/f3’
      removed directory: ‘d4/f1/f2’
      removed directory: ‘d4/f1’
      removed directory: ‘d4/f3’
      removed directory: ‘d4/f2’
      removed directory: ‘d4’
      

三、mv命令(移動檔案 | 重新命名)

  1. -b 若目標位置已有同名檔案,則自動備份再覆蓋(預設是在名稱後面加‘~’)
    [[email protected]_0_3_centos huan]# mv -bfv d2
    mv: missing destination file operand after ‘d2’
    Try 'mv --help' for more information.
    [[email protected]_0_3_centos huan]# mv -bfv d1 d2
    ‘d1’ -> ‘d2/d1’ (backup: ‘d2/d1~’)
    [[email protected]_0_3_centos huan]# ll d2
    total 8
    drwxr-xr-x 2 root root 4096 Nov  3 12:00 d1
    drwxr-xr-x 2 root root 4096 Nov  3 11:59 d1~
    [[email protected]_0_3_centos huan]# 
    
  2. -f 若目標位置已有同名檔案,強制覆蓋,不進行提示
    [[email protected]_0_3_centos huan]# mv d1 d2/d1 -f
    [[email protected]_0_3_centos huan]# ll d2
    total 4
    drwxr-xr-x 2 root root 4096 Nov  3 11:28 d1
    -rw-r--r-- 1 root root    0 Nov  3 11:32 f1
    
  3. -i 若目標位置已有同名檔案,在覆蓋之前進行提示
    [[email protected]_0_3_centos huan]# mv d1 d2 -i
    mv: overwrite ‘d2/d1’? n
    [[email protected]_0_3_centos huan]# ll
    total 12
    drwxr-xr-x 3 root root 4096 Nov  3 11:39 d1
    drwxr-xr-x 3 root root 4096 Nov  3 11:41 d2
    drwxr-xr-x 2 root root 4096 Nov  3 11:46 f1
    
  4. -n 若目標位置已有同名檔案,不會進行覆蓋操作
    [[email protected]_0_3_centos huan]# mv d1 d2 -n
    [[email protected]_0_3_centos huan]# ll
    total 12
    drwxr-xr-x 3 root root 4096 Nov  3 11:39 d1
    drwxr-xr-x 3 root root 4096 Nov  3 11:41 d2
    drwxr-xr-x 2 root root 4096 Nov  3 11:46 f1
    
  5. -S 當檔案存在的時候,不進行覆蓋操作,指定新檔案的名稱字尾(預設是’~’)
    [[email protected]_0_3_centos huan]# mkdir d1
    [[email protected]_0_3_centos huan]# mv -bfv d1 d2 -S ff
    ‘d1’ -> ‘d2/d1’ (backup: ‘d2/d1ff’)
    [[email protected]_0_3_centos huan]# ll d2
    total 12
    drwxr-xr-x 2 root root 4096 Nov  3 12:04 d1
    drwxr-xr-x 2 root root 4096 Nov  3 11:59 d1~
    drwxr-xr-x 2 root root 4096 Nov  3 12:00 d1ff
    
  6. -t 先指定目標地址(預設先指定目標源), 再指定原始檔
    [[email protected]_0_3_centos huan]# mv -t d2 d1
    mv: overwrite ‘d2/d1’? n
    [[email protected]_0_3_centos huan]# ll
    total 12
    drwxr-xr-x 3 root root 4096 Nov  3 11:39 d1
    drwxr-xr-x 3 root root 4096 Nov  3 11:41 d2
    drwxr-xr-x 2 root root 4096 Nov  3 11:46 f1
    
  7. -T 把目標檔案當成一個正常的檔案
  8. -u 只有原始檔比目標檔案新或者目標檔案不存在時才移動或覆蓋檔案
[[email protected]_0_3_centos huan]# ll
total 4
drwxr-xr-x 3 root root 4096 Nov  3 12:24 d1
-rw-r--r-- 1 root root    0 Nov  3 12:25 f1
-rw-r--r-- 1 root root    0 Nov  3 12:26 f2
[[email protected]_0_3_centos huan]# mv -u f1 f2
[[email protected]_0_3_centos huan]# ll
total 4
drwxr-xr-x 3 root root 4096 Nov  3 12:24 d1
-rw-r--r-- 1 root root    0 Nov  3 12:25 f1
-rw-r--r-- 1 root root    0 Nov  3 12:26 f2
  1. -v 列印移動日誌
    [[email protected]_0_3_centos huan]# mv f1 d1 -v
    ‘f1’ -> ‘d1/f1’
    

四、cp命令(複製)

  1. -a 在保留原檔案屬性的前提下複製檔案
  2. -b 若目標位置已有同名檔案,則自動備份再覆蓋(預設是在名稱後面加‘~’)
    [[email protected]_0_3_centos huan]# cp f1 f2 -b
    cp: overwrite ‘f2’? y
    [[email protected]_0_3_centos huan]# ll
    total 4
    drwxr-xr-x 3 root root 4096 Nov  3 12:24 d1
    -rw-r--r-- 1 root root    0 Nov  3 12:25 f1
    -rw-r--r-- 1 root root    0 Nov  3 12:39 f2
    -rw-r--r-- 1 root root    0 Nov  3 12:26 f2~
    
  3. -f 若目標檔案存在且處於不可讀狀態,則先將其刪除然後再嘗試複製,會忽略-n指令
  4. -i 若目標位置已有同名檔案,在覆蓋之前進行提示
  5. -n 若目標位置已有同名檔案,不會進行覆蓋操作
    [[email protected]_0_3_centos huan]# cp f1 f3  -n
    [[email protected]_0_3_centos huan]# ll
    total 0
    -rw-r--r-- 2 root root 0 Nov  3 12:25 f1
    -rw-r--r-- 1 root root 0 Nov  3 12:39 f2
    -rw-r--r-- 1 root root 0 Nov  3 12:47 f3
    -rw-r--r-- 2 root root 0 Nov  3 12:25 f3copy
    
  6. -R 遍歷所有檔案,在複製目錄時候用
  7. -r 遍歷所有檔案,在複製目錄時候用
  8. -s 對原始檔建立符號連結,而非複製檔案
  9. -S 當檔案存在的時候,不進行覆蓋操作,指定新檔案的名稱字尾(預設是’~’)
    [[email protected]_0_3_centos huan]# cp f1 f3  -S copy
    cp: overwrite ‘f3’? y
    [[email protected]_0_3_centos huan]# ll
    total 0
    -rw-r--r-- 2 root root 0 Nov  3 12:25 f1
    -rw-r--r-- 1 root root 0 Nov  3 12:39 f2
    -rw-r--r-- 1 root root 0 Nov  3 12:47 f3
    -rw-r--r-- 2 root root 0 Nov  3 12:25 f3copy
    
  10. -t 先指定目標地址(預設先指定目標源), 再指定原始檔
    [[email protected]_0_3_centos huan]# cp -t f3 f1 
    cp: target ‘f3’ is not a directory
    
  11. -T 把目標檔案當成一個正常的檔案
  12. -u 只有原始檔比目標檔案新或者目標檔案不存在時才移動或覆蓋檔案
  13. -v 列印複製日誌
  14. -Z 將指定的文字內容變為安全的內容