在 Linux 中一切皆文件。文件管理主要是涉及文件/目錄的創建、刪除、移動、複製和查詢,有mkdir/rm/mv/cp/find 等命令。其中 find 文件查詢命令較為複雜,參數豐富,功能十分強大;查看文件內容是一個比較大的話題,文本處理也有很多工具供我們使用,本文涉及到這兩部分的內容只是點到為... ...
本文大部分內容參看 《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
- 管道和重定向命令:
;
|
&&
>