天天看點

3 Linux檔案和目錄管理

3 Linux檔案和目錄管理

3 Linux檔案和目錄管理

  • ​​1 pwd指令​​
  • ​​2 cd 指令​​
  • ​​3 ls 指令​​
  • ​​4 du 指令​​
  • ​​5 mkdir指令​​
  • ​​6 touch指令​​
  • ​​7 rm指令​​
  • ​​8 mv指令​​
  • ​​9 cp指令​​
  • ​​10 find指令​​
  • ​​11 檔案屬性​​
  • ​​12 檔案類型​​
  • ​​12.1 普通檔案​​
  • ​​12.2 目錄檔案​​
  • ​​12.3 連結檔案​​
  • ​​12.4 特殊檔案​​
  • ​​13 連結檔案​​
  • ​​13.1 連結檔案簡介​​
  • ​​13.2 ln指令:建立連結檔案​​
  • ​​14 歸檔及壓縮​​
  • ​​14.1 tar 內建備份工具​​
  • ​​14.2 zip​​

1 pwd指令

  • (Print Working Directory)顯示出完整的目前工作目錄的名稱
[root@localhost ~]# pwd      
  • 選項:-P 顯示連結的真實路徑
[root@localhost ~]# cd /bin/
[root@localhost bin]# pwd
/bin
[root@localhost bin]# pwd -P      

2 cd 指令

  • (Change Directory)切換目錄
  • 指令格式:cd [目标檔案夾位置]
[root@localhost ~]# cd /opt/
[root@localhost opt]# pwd      
  • cd 指令常用的幾種方式
  1. 直接使用 cd 會切換到目前登入使用者的家目錄、
[root@localhost opt]# cd 
[root@localhost ~]# pwd      
  1. cd … 切換到目前目錄的父目錄
[root@localhost ~]# cd ..
[root@localhost /]# pwd      
  1. cd ~使用者名 切換到目标使用者的家目錄
[root@localhost ~]# useradd lisi
[root@localhost ~]# cd ~lisi
[root@localhost lisi]# pwd      
  1. cd - 切換到上一個工作目錄
[root@localhost ~]# cd /opt 
[root@localhost opt]# cd /etc
[root@localhost etc]# cd -      
  • 絕對路徑和相對路徑
  • 絕對路徑:以根目錄開始的完整路徑
  • 相對路徑:以目前所在的目錄為參照物的路徑

3 ls 指令

  • (list)顯示指定目錄下的内容(列出目前工作目錄所含檔案及子目錄)
  • 指令格式:ls [選項] [目錄或檔案名]…
[root@localhost ~]# ls      
  • 常用的選項
  • -l 長格式顯示檔案的詳細屬性
[root@localhost ~]# ls -l /etc/passwd
-rw-r--r--. 1 root root 2727 6月   8 10:24 /etc/passwd      
  • -A 顯示目标目錄下所有的檔案和目錄,包括隐藏檔案
[root@localhost ~]# ls -A /root/      
  • -d 顯示目錄本身的屬性
[root@localhost ~]# ls -ld /etc      
  • -h 提供一個易讀的機關
[root@localhost ~]# ls -lh /etc/passwd      
  • -R 遞歸顯示内容
[root@localhost ~]# ls -R /etc/      

4 du 指令

  • 統計檔案或者目錄使用硬碟空間的大小
  • 指令格式 : du [選項] 檔案或目錄
  • 常用選項
  • -s 顯示檔案或目錄的大小
  • -h 加一個易讀的機關
  • -a 檢視所有目錄以及檔案的大小
[root@localhost ~]# du -sh /etc/passwd      

5 mkdir指令

  • 建立目錄
  • 指令格式:mkdir [選項]… 目錄…
[root@localhost ~]# mkdir /opt/nsd2005
[root@localhost ~]# cd /opt/nsd2005
[root@localhost nsd2005]# pwd      
  • 常用的選項
  • -p 建立一個目錄并将它的父目錄也建立出來(建立一個連續的目錄)
[root@localhost nsd2005]# mkdir -p /opt/nsd2005/aa/bb/cc/dd/ee
[root@localhost nsd2005]# cd /opt/nsd2005/aa/bb/cc/dd/ee
[root@localhost ee]# pwd      
  • -m 建立目錄時指定權限
[root@localhost ~]# mkdir -m 444 /opt/nsd05
[root@localhost ~]# ls -ld /opt/nsd05
dr--r--r--. 2 root root 6 6月   8 10:50 /opt/nsd05      

6 touch指令

  • 建立檔案或修改檔案時間
  • 不存在則建立,存在則跟新檔案所有的時間為系統時間
  • 指令格式: touch 檔案名
[root@localhost ~]# touch 1.txt   //在目前目錄下建立檔案1.txt
[root@localhost ~]# touch /opt/1.txt   //在指定目錄下建立檔案1.txt      

7 rm指令

  • 删除目錄或檔案
  • 指令格式:rm [選項]… 檔案…
  • 常用的選項
  • -r :遞歸删除(删除目錄必須要有)
  • -f : 強制删除
[root@localhost ~]# rm -rf /opt/1.txt 
[root@localhost ~]# rm -rf /opt/nsd05/
[root@localhost ~]# ls /opt/      

8 mv指令

  • (move)移動檔案或目錄
  • 路徑不變的移動(重命名)
  • 指令格式:mv 原檔案… 目标路徑
[root@localhost ~]# touch 1.txt
[root@localhost ~]# mv 1.txt  /opt/1.txt      
  • 重命名
[root@localhost ~]# mv  /opt/1.txt /opt/2.txt
[root@localhost ~]# ls /opt/      

9 cp指令

  • (copy)複制
  • 指令格式:cp [選項]… 原檔案1、原檔案2… 目标路徑
  • 常用選項
  • -r 遞歸複制,複制目錄時必須有的選項
  • -p 保持權限不變的複制
  • -a 複制時保留源檔案的所有屬性(包括權限、時間等)
[root@localhost ~]# cp /etc/passwd /opt/passwd
[root@localhost ~]# ls /opt/
  
[root@localhost ~]# cp /etc/passwd /opt/pass
[root@localhost ~]# ls /opt/      

10 find指令

  • 指令格式: find [目錄] [條件1] [條件2]
  • 常用的條件
  • -type 類型 (f 文本檔案、 d 目錄、 l快捷方式)
  • -name “檔案名稱”
  • -iname 按文檔名稱查找,且不區分大小寫
  • -size + | - 檔案大小(k、M、G、TB、PB、EB)
  • -user 使用者名
  • -mtime 按修改時間查找
  • -empty 查找空白檔案或目錄
  • -group 按組查找
[root@localhost ~]# find /boot/ -type f   #查找/boot目錄下所有的檔案
[root@localhost ~]# find /boot/ -empty    #查找/boot目錄下所有的空檔案或目錄      
  • 進階使用:處理查找的内容
  • 指令格式:find [範圍] [條件] -exec 處理指令 {} ;
  • -exec
  • 示例
[root@localhost ~]# find /boot/ -type f  -exec cp {} /opt/ \;

[root@localhost ~]# find /opt/ -type f  -exec rm -rf  {}  \;
[root@localhost ~]# ls /opt/      

11 檔案屬性

  • 檔案屬性由9個部分組成,以空格分隔。
  • 以/etc/passwd檔案為例
[root@svr7 ~]# ls -l /etc/passwd
-rw-r--r--. 1 root root 2236 6月  11 19:58 /etc/passwd
12      
  • 第一部分:由10個字元組成,第一個字元用于辨別檔案的類型。後9個字元代表檔案的通路權限
  • “-”表示普通檔案,“d”表示目錄,“l”表示連結檔案,“s”表示套接字檔案
  • “p”表示命名管道檔案,”c“表示字元裝置檔案,“b”表示塊裝置檔案
  • 檔案的通路權限分為:”可讀、可寫、可執行“,分别以r、w、x表示
  • 2~4,這三個字元代表該檔案的所有者擁有的權限
  • 5~7,這三個字元代表該檔案的所屬組擁有的權限
  • 8~10,這三個字元代表其他人對該檔案擁有的權限
  • 第二部分:檔案硬連結數。在本例中該值為1
  • 第三部分:表示檔案的所有者
  • 第四部分:表示檔案的所屬組
  • 第五部分:表示檔案的大小
  • 第六、七、八部分:表示檔案最後更新的時間
  • 第九部分:檔案名

12 檔案類型

Linux有四種基本檔案系統類型。

通過指令 ls -l 可以傳回 檔案的相關屬性。

12.1 普通檔案

普通檔案包括文本檔案、程式代碼檔案、Shell腳本、二進制的可執行檔案等。

普通檔案的辨別為“ - ”

例如

[root@localhost ~]# ls -l /etc/passwd
-rw-r--r--. 1 root root 2192 Apr  8 07:33 /etc/passwd
12      

12.2 目錄檔案

目錄也就是常說的檔案夾。

目錄的辨別為 “ d ”

例如

[root@localhost ~]# ls -lhd /etc
drwxr-xr-x. 134 root root 8.0K May  4 07:15 /etc
12      

不加-d 則顯示這個目錄下所有檔案和目錄的詳細屬性

[root@localhost ~]# ls -lh /etc
total 1.4M
drwxr-xr-x.  3 root root    101 Apr  8 07:27 abrt
-rw-r--r--.  1 root root     16 Apr  8 07:33 adjtime
···················································
12345      

12.3 連結檔案

連結檔案其實是一個指向檔案的指針。類似于Windows系統中的快捷方式。

檔案名後會指向被連結的檔案

例如

[root@localhost ~]# ls -l /dev/cdrom 
lrwxrwxrwx. 1 root root 3 May  4 06:06 /dev/cdrom -> sr0
12      

12.4 特殊檔案

Linux系統中有三種特殊檔案

  • 套接字(socket)檔案:通過套接字檔案,可以實作網絡通信。套接字檔案的辨別值為s。
[root@localhost ~]# ls -l /dev/log 
srw-rw-rw-. 1 root root 0 May  4 06:06 /dev/log
12      
  • 命名管道檔案:通過管道檔案可以實作程序間的通信。命名管道檔案的辨別值為p。
[root@localhost ~]# ls -l /dev/initctl 
lrwxrwxrwx. 1 root root 25 May  4 06:06 /dev/initctl -> /run/systemd/initctl/fifo
[root@localhost ~]# ls -l /run/systemd/initctl/fifo
prw-------. 1 root root 0 May  4 06:06 /run/systemd/initctl/fifo
1234      
  • 裝置檔案:Linux為每個裝置配置設定了一個裝置檔案,存放于/dev目錄下,分為字元裝置檔案和塊裝置檔案。
  • 其中,鍵盤、tty等屬于字元裝置,辨別為c;
  • 記憶體、磁盤屬于塊裝置檔案,辨別為b;
[root@localhost ~]# ls -l /dev/tty0
crw--w----. 1 root tty 4, 0 May  4 06:06 /dev/tty0
[root@localhost ~]# ls -l /dev/sda1
brw-rw----. 1 root disk 8, 1 May  4 06:06 /dev/sda1
1234      

13 連結檔案

13.1 連結檔案簡介

連結檔案其實是一個指向檔案的指針。類似于Windows系統中的快捷方式。

但又分為兩種

  • 硬連結(Hard Link)

    硬連結是指通過索引節點進行的連接配接。儲存在檔案系統中的每一個檔案,系統都會為它配置設定一個索引節點。

    在Linux系統中,多個檔案指向同一個索引節點是允許的,像這樣的連接配接就是硬連結。

    對硬連結檔案進行讀寫删除操作的時候,與軟連接配接相同,都是相當于對源檔案進行操作。

    如果删除這個硬連結的源檔案,則硬連結依然存在,而且保留了原有的内容。可以防止誤操作導緻檔案丢失。

    但是硬連結隻能在同一檔案系統中的檔案之間進行連結,而且不能是目錄。

  • 符号連結(Symbolic Link)

    符号連結又稱為軟連接配接。類似于快捷方式,不包含實際的資料。

    對軟連接配接進行操作,就相當于對源檔案的操作,将這個軟連接配接删除後,不影響源資料。

    符号連結主要用于将路徑比較長的檔案連結到一個路徑比較簡單的路徑下,友善管理使用。

13.2 ln指令:建立連結檔案

ln指令建立連結檔案,預設建立的是硬連結。

例如:在root下建立一個名為passwd.bak的硬連結檔案,源連結檔案為/etc/passwd

[root@localhost ~]# ln /etc/passwd /root/passwd.bak
[root@localhost ~]# cat /root/passwd.bak
12      
  • 如果連結的是目錄或者不同檔案系統下的檔案,硬連結都會失敗
[root@localhost ~]# ln /etc/ /root/etc.bak
ln: ‘/etc/’: hard link not allowed for directory
12      

對于上述兩種情況,隻能使用符号連結(軟連結)

  • -s 選項 建立軟連接配接。

例如

[root@localhost ~]# ln -s /etc/ /root/etc.bak
[root@localhost ~]# ls /root/etc.bak      

14 歸檔及壓縮

  • 歸檔:将多個檔案或目錄整理為一個檔案,檔案總大小不會改變。
  • 壓縮:按照某種算法減小檔案占用空間的大小
  • Linux系統中常見的壓縮格式
  • .gz ==》 gzip
  • .bz2 ==》 bzip2
  • .xz ==》 xz

14.1 tar 內建備份工具

  • 建立壓縮包
  • 指令格式1: tar 選項 /路徑/壓縮包的名字 /路徑/被壓縮歸檔的資料…
  • 釋放壓縮包:
  • 指令格式2: tar 選項 /路徑/壓縮包的名字 -C(大寫) /路徑/
  • 常用選項
  • -c 建立歸檔
  • -x 釋放歸檔
  • -f 指定歸檔檔案名稱,必須要有的選項,必須放在所有選項後面。
  • -z 、 -j 、-J : 分别表示gz、bz2、xz
  • -t : 顯示歸檔檔案中的清單。不執行解壓縮的操作
  • -C : 指定釋放路徑
[root@localhost ~]# tar -zcf /root/tarfile.tar.gz  /boot  /opt/
tar: 從成員名中删除開頭的“/”
[root@localhost ~]# tar -tf /root/tarfile.tar.gz      
[root@localhost ~]# mkdir /opt/tarfiles
        
[root@localhost ~]# tar -xf /root/tarfile.tar.gz -C  /opt/tarfiles/
[root@localhost ~]# ls /opt/tarfiles/      

14.2 zip

  • zip歸檔工具:可跨平台的
  • 歸檔+壓縮
  • zip -r 備份檔案.zip 被歸檔的檔案或目錄
[root@localhost ~]# zip -r /root/zipfiles.zip /home /boot      
  • 釋放+解壓
  • unzip 備份檔案.zip -d [目标檔案夾]
[root@localhost ~]# mkdir /zipfiles
   [root@localhost ~]# unzip /root/zipfiles.zip -d /zipfiles
   [root@localhost ~]# ls /zipfiles      
3 Linux檔案和目錄管理

繼續閱讀