Linux 基礎-檔案及目錄管理

嵌入式視覺發表於2022-12-02

Linux 基礎-檔案及目錄管理

本文大部分內容參看 《Linux基礎》一書,根據自己的工程經驗和理解加以修改、擴充和最佳化形成了本篇部落格,不適合 Linux 純小白,適合有一定基礎的開發者閱讀。

一,概述

在 Linux 中一切皆檔案。檔案管理主要是涉及檔案/目錄的建立、刪除、移動、複製和查詢,有mkdir/rm/mv/cp/find 等命令。其中 find 檔案查詢命令較為複雜,引數豐富,功能十分強大;檢視檔案內容是一個比較大的話題,文字處理也有很多工具供我們使用,本文涉及到這兩部分的內容只是點到為止,沒有詳細講解。另外給檔案建立一個別名,我們需要用到 ln,使用這個別名和使用原檔案是相同的效果。

二,檔案及目錄常見操作

2.1,建立、刪除、移動和複製

建立和刪除命令的常用用法如下:

  • 建立目錄:mkdir
  • 刪除檔案:rm file(刪除目錄 rm -r)
  • 移動指定檔案到目標目錄中:mv source_file(檔案) dest_directory(目錄)
  • 複製:cp(複製目錄 cp -r)

這些命令的常用和複雜例子程式如下

$ find ./ | wc -l  # 檢視當前目錄下所有檔案個數(包括子目錄)
14995
$ cp –r test/ newtest   # 使用指令 cp 將當前目錄 test/ 下的所有檔案複製到新目錄 newtest 下
$ mv test.txt demo.txt  # 將檔案 test.txt 改名為 demo.txt

2.2,目錄切換

  • 切換到上一個工作目錄: cd -
  • 切換到 home 目錄: cd or cd ~
  • 顯示當前路徑: pwd
  • 更改當前工作路徑為 path: $ cd path

2.3,列出目錄內容

  • 顯示當前目錄下的檔案及檔案屬性ls
  • 按時間排序,以列表的方式顯示目錄項:ls -lrt

ls 命令部分引數解釋如下:

  • -a:顯示所有檔案及目錄 (. 開頭的隱藏檔案也會列出)
  • -l:除檔名稱外,亦將檔案型態、許可權、擁有者、檔案大小等資訊詳細列出
  • -r:將檔案以相反次序顯示(原定依英文字母次序)
  • -t: 將檔案依建立時間之先後次序列出

常用例子如下:

$ pwd
/
$ ls -al  # 列出根目錄下所有的檔案及檔案型別、大小等資訊
total 104
drwxr-xr-x   1 root root 4096 Dec 24 01:24 .
drwxr-xr-x   1 root root 4096 Dec 24 01:24 ..
drwxrwxrwx  11 1019 1002 4096 Jan 13 09:34 data
drwxr-xr-x  15 root root 4600 Dec 24 01:24 dev
drwxr-xr-x   1 root root 4096 Jan  8 03:15 etc
drwxr-xr-x   1 root root 4096 Jan 11 05:49 home
drwxr-xr-x   1 root root 4096 Dec 23 01:15 lib
drwxr-xr-x   2 root root 4096 Dec 23 01:15 lib32
... 省略

2.4,查詢目錄或者檔案 find/locate

1,查詢檔案或目錄

$ find ./ -name "cali_bin*" | xargs file  # 查詢當前目錄下檔名含有 cali_bin 字串的檔案
./classifynet_calib_set/cali_bin.txt: ASCII text
./calib_set/cali_bin.txt:             ASCII text
./cali_bin.txt:                       ASCII text

2,查詢目標資料夾中是否含有 obj 檔案:

$ find ./ -name '*.o'

find 是實時查詢,如果需要更快的查詢,可試試 locate;locate 會為檔案系統建立索引資料庫,如果有檔案更新,需要定期執行更新命令來更新索引庫。

$ locate string  # 尋找包含有 string 的路徑

2.5,檢視及搜尋檔案內容

1,檢視檔案內容命令:cat vi head tail more

$ cat -n  # 顯示時同時顯示行號 
$ ls -al | more  # 按頁顯示列表內容
$ head -1 filename  # 顯示檔案內容第一行
$ diff file1 file1  # 比較兩個檔案間的差別

2,使用 egrep 查詢檔案內容:

$ egrep "ls" log.txt  # 查詢 log.txt 檔案中包含 ls 字串的行內容
-rw-r--r--   1 root root       2009 Jan 13 06:56 ls.txt

三,總結

利用 ls -al 命令檢視檔案屬性及許可權,已知了 Linux 系統內檔案的三種身份(檔案擁有者、檔案所屬群組與其他使用者),每種身份都有四種許可權(rwxs)。可以使用 chown, chgrp, chmod 去修改這些許可權與屬性。檔案是實際含有資料的地方,包括一般文字檔案、資料庫內容檔案、二進位制可執行檔案(binary program)等等。

  • 檔案管理,目錄的建立、刪除、查詢、管理: mkdir rm mv cp
  • 檔案的查詢和檢索命令: find locate
  • 檢視檔案內容命令:cat vi tail more
  • 管道和重定向命令: ; | && >

四,參考資料

《Linux基礎》

相關文章