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
- 管道和重定向命令:
;
|
&&
>