:文件管理、鏈接機制與歸檔壓縮完全指南)
Linux 核心基礎(chǔ)文件管理、鏈接機制與歸檔壓縮完全指南一、Linux 的哲學一切皆文件在 Linux 世界中“一切皆文件”是最核心的設(shè)計思想。這不僅指普通的數(shù)據(jù)文件還包括目錄特殊類型的文件用于組織其他文件設(shè)備如/dev/sda硬盤進程信息如/proc/下的虛擬文件理解這個哲學你就能明白為什么ls -l的輸出中第一列的字符-、d、l、h、s、可以區(qū)分文件類型。1.1 文件類型標識符速查標識符文件類型示例d目錄/var/www/html/l符號鏈接軟鏈接libc.so - libc-2.28.soc字符設(shè)備/dev/ttyb塊設(shè)備/dev/sdas本地套接字/run/php-fpm/www.sock二、文件管理核心命令2.1 查看ls查看目錄內(nèi)容常用選項-l#顯示詳細信息在選項位置輸入即可輸出文件夾的權(quán)限、大小、時間等信息-a#顯示所有文件包括隱藏文件隱藏文件為.開頭的文件-h#通常與-l同時出現(xiàn)h是指英文單詞human顯示更加易查看的文件大小-d#顯示目錄本身的信息不是查看該目錄的內(nèi)容-t#顯示文件以時間順序進行排序演示查看當前目錄內(nèi)容? 然后我們輸入選項進行操作查看詳細信息? 當然選項也可以一塊使用如果我們想查詢所有文件顯示詳細信息并且按時間順序我們可以這樣操作因為我沒有添加參數(shù)默認顯示家目錄。如果想查看指定目錄需在選項后面增加參數(shù)例子如下2.2導航pwd打印當前工作目錄? 當你不知道自己在哪個地方時就敲一下這個命令要養(yǎng)成多敲這個命令的習慣演示打印當前工作目錄? 表示當前用戶在家目錄? 目錄其實是一個索引頁它上面記載著哪個目錄哪個文件在哪個地方。很多人把它理解成為一個抽屜認為我們的文件像一摞摞紙張一樣存放在里面這個思想是錯誤的。Linus的文件系統(tǒng)就像一棵大樹根目錄 / 是樹根而其他分支出去的相當于樹枝。Linux 中的目錄是內(nèi)核為了將“冰冷的磁盤塊編號”翻譯成“人類可讀的字符串”而維護的一個動態(tài)路由表。2.3 切換cd切換目錄常用目錄.#當前目錄..#上一級目錄-#上一個目錄/#根目錄~#家目錄演示切換到/目錄下的etc目錄這里首先要看清當前在哪個目錄如果不知道可以用pwd命令進行查詢。如上圖所示當前在家目錄然后要切換到etc目錄etc目錄在/目錄之下如果在家目錄之下我們可以直接切換反之則會報錯報錯提示2.4 目錄的創(chuàng)建mkdir創(chuàng)建目錄常用選項-p#遞歸創(chuàng)建所有不存在的父目錄演示在當前目錄下創(chuàng)建一個dir1的目錄然后我們創(chuàng)建目錄結(jié)構(gòu) dir1/docs/images但mkdir命令默認只能創(chuàng)建最后一層目錄它前面的所有父目錄必須已經(jīng)存在但docs目錄我們并未創(chuàng)建所以此時我們可以通過-p選項自動創(chuàng)建路徑中所有不存在的父目錄。用ls命令查看一下是否創(chuàng)建成功2.5 文件的創(chuàng)建touch 創(chuàng)建空文件或更新時間戳。如果文件不存在則創(chuàng)建一個新的空文件如果文件存在則更新其訪問和修改時間戳演示創(chuàng)建一個空文件 file1.txt如果我們想在一個目錄下創(chuàng)建多個文件文件之間隔一個空格即可文件數(shù)量如果過于龐大可以借助{}創(chuàng)建多個文件例如創(chuàng)建10個file文件2.6 復制cp復制文件或目錄。-r或-R#遞歸復制目錄及其所有內(nèi)容-i#覆蓋前提示確認-v#顯示復制過程的詳細信息-f#強制執(zhí)行不會提示演示將 file1.txt 復制到當前目錄并命名為 file1_backup.txt將 file1.txt 復制到 /tmp 目錄遞歸復制整個 dir1 目錄到 /tmp 目錄2.7 移動mv移動文件或目錄以及重命名文件或目錄。演示將 file1.txt 重命名為 data.txt將 data.txt 文件移動到 dir1/docs/ 目錄下2.8 刪除rm刪除文件或目錄。-r#遞歸刪除目錄及其所有內(nèi)容。-f#強制刪除忽略不存在的文件不提示確認。-i#交互模式刪除前會提示進行逐一確認。演示刪除 dir1/file5.txt 文件遞歸刪除 /var/tmp/dir1/ 目錄及其下的所有內(nèi)容三、鏈接機制硬鏈接 vs 軟鏈接鏈接是 Linux 文件系統(tǒng)中非常獨特且強大的特性。理解它們的區(qū)別能幫你更好地管理文件、節(jié)省磁盤空間甚至解決一些系統(tǒng)問題。3.1 硬鏈接Hard Link本質(zhì)同一個 inode索引節(jié)點的多個文件名入口。# 創(chuàng)建硬鏈接lnsource.txt hardlink.txt# 查看 inode 號ls-lisource.txt hardlink.txt# 輸出示例# 1234567 -rw-r--r-- 2 user user 10 Aug 1 12:00 source.txt# 1234567 -rw-r--r-- 2 user user 10 Aug 1 12:00 hardlink.txt關(guān)鍵特性刪除源文件不影響硬鏈接引用計數(shù)減1為0時才真正刪除硬鏈接不能跨文件系統(tǒng)分區(qū)硬鏈接不能指向目錄防止循環(huán)引用所有硬鏈接共享文件內(nèi)容和權(quán)限實際應用節(jié)省磁盤空間的備份策略。3.2 軟鏈接Symbolic Link本質(zhì)一個指向目標文件路徑的特殊文件類似 Windows 的快捷方式。# 創(chuàng)建軟鏈接ln-s/path/to/target softlink# 查看鏈接指向ls-lsoftlink# 輸出softlink - /path/to/target關(guān)鍵特性可以跨文件系統(tǒng)可以鏈接目錄刪除目標文件后軟鏈接失效懸空鏈接源文件移動或重命名后軟鏈接失效實際應用管理共享庫版本如libc.so - libc-2.28.so、快捷訪問深層路徑。3.3 對比總結(jié)特性硬鏈接軟鏈接inode同一個 inode新的 inode存儲路徑跨文件系統(tǒng)不支持支持鏈接目錄不支持支持源文件刪除仍可訪問失效生產(chǎn)用途備份去重版本管理、快捷訪問四、歸檔與壓縮tar 的靈活運用4.1 理解歸檔與壓縮的區(qū)別操作含義工具歸檔將多個文件/目錄打包成一個文件不壓縮tar壓縮通過算法減小文件體積gzip、bzip2、xz、zip在 Linux 中tar可以同時完成歸檔和壓縮是日常使用率最高的工具。4.2 tar 命令核心用法# 1. 創(chuàng)建歸檔僅打包不壓縮tar-cvfarchive.tar /path/to/dir/# 2. 解包tar-xvfarchive.tar# 3. 打包并壓縮gzip - 最快壓縮率一般tar-czvfarchive.tar.gz /path/to/dir/# 4. 打包并壓縮bzip2 - 壓縮率更高tar-cjvfarchive.tar.bz2 /path/to/dir/# 5. 打包并壓縮xz - 壓縮率最高速度最慢tar-cJvfarchive.tar.xz /path/to/dir/# 6. 解壓對應的壓縮包tar-xzvfarchive.tar.gztar-xjvfarchive.tar.bz2tar-xJvfarchive.tar.xz參數(shù)解析ccreate創(chuàng)建xextract提取vverbose顯示詳細過程ffile指定文件名zgzip 壓縮jbzip2 壓縮Jxz 壓縮4.3 常用場景實戰(zhàn)場景一備份網(wǎng)站目錄# 備份 WordPress 源碼帶壓縮并排除緩存目錄tar-czvfwordpress_backup_$(date%Y%m%d).tar.gz\--excludewp-content/cache\/var/www/wordpress/場景二跨服務器傳輸# 在本地打包并通過 SSH 直接傳輸?shù)竭h程服務器tar-czvf- /var/www/wordpress/|sshuser192.168.1.100cat /backup/wordpress.tar.gz場景三僅查看壓縮包內(nèi)容不解壓tar-tzvfmage.tar.gz# 查看文件列表tar-tvfmage.tar# 查看未壓縮歸檔的內(nèi)容場景四解壓到指定目錄tar-xzvfmage.tar.gz-C/target/dir/寫在最后Linux 文件管理和歸檔壓縮是每個技術(shù)人員的基本功但真正精通的人并不多。希望這篇博客能幫你建立起一個清晰的知識框架讓這些命令不再是零散的碎片而是融會貫通的工具鏈。如果你在實踐過程中遇到問題歡迎在評論區(qū)交流討論。祝你在 Linux 的學習之路上一帆風順**場景三僅查看壓縮包內(nèi)容不解壓** bash tar -tzvf mage.tar.gz # 查看文件列表 tar -tvf mage.tar # 查看未壓縮歸檔的內(nèi)容場景四解壓到指定目錄tar-xzvfmage.tar.gz-C/target/dir/–