日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux文件管理 | Liunx 常用命令

發布時間:2024/1/8 linux 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux文件管理 | Liunx 常用命令 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文件與目錄基本操作

目錄:

  • 一、顯示文件內容

    • cat 命令

    • more 命令

    • less 命令

    • head 命令

    • tail 命令

  • 二、文件內容查詢(grep)

  • 三、文件查找命令

    • find 命令

    • locate 命令

  • 四、文本處理命令

    • sort 命令

    • uniq 命令

  • 五、文本內容統計命令(wc)

  • 六、文件比較命令

    • comm 命令

    • diff 命令

  • 七、文件的復制、移動和刪除命令

    • cp 命令

    • mv 命令

    • rm 命令

  • 八、文件鏈接命令(ln)

  • 九、目錄的創建與刪除(mkdir、rmdir)

  • 十、切換目錄、路徑等相關命令

    • cd 命令

    • pwd 命令

    • ls 命令




一、顯示文件內容

用戶查看文件內容時,可以通過以下命令查看。

1、cat 命令:

用于顯示文件,可依次讀取其后所指文件內容并將其輸出到標準輸出設備上。另外,還可以用于連接兩個或多個文件,形成新的文件。

#cat命令 cat [option] filename

在a.txt文件中輸入“hello ”,在b.txt中輸入"world"。

除此之外,cat 命令還可以把標準輸入內容復制到標準輸出文件中。在cat 命令后輸入想要放在文件中的文本內容,結束用Ctrl+D結束輸入(組合鍵Ctrl+D告知cat 已經輸入到文件結尾,即 end-of-file,EOF)。Tips:如果cat 命令后省略文件則默認把輸入內容復制到標準輸出(屏幕上)。

用man幫助手冊查看cat的使用cman cat

名稱

cat - 連接文件并在標準輸出上輸出

概述

cat [選項]... [文件]...

描述
將文件列表中的文件連接到標準輸出。

如果沒有指定文件,或者指定文件為“-”,則從標準輸入讀取。-A, --show-all等價于 -vET-b, --number-nonblank給非空輸出行編號,使 -n 失效。-e 等價于 -vE-E, --show-endsNAME在每行結束顯示 $-n, --number給所有輸出行編號-s, --squeeze-blank將所有的連續的多個空行替換為一個空行-t 等價于 -vT-T, --show-tabs把 TAB 字符顯示為 ^I-u (被忽略的選項)-v, --show-nonprinting除了 LFD 和 TAB 之外的不可打印字符,用 ^ 和 M- 標記方式顯示--help 顯示此幫助信息并退出--version顯示版本信息并退出

2、more命令

分頁顯示文件內容,使用空格或回車翻頁,主要用于顯示內容較多的文件。查看過程中可通過q按鍵退出查看

#more命令 more [option] filename

用for i in {1..100};do echo "$i " >> test; done;命令向test文件中輸入1~100,使用more命令查看

用man幫助手冊查看more的使用cman more

名稱

more — 在顯示器上閱讀文件的過濾器

總覽 (SYNOPSIS)

more [-dlfpcsu] [-num] [+/ pattern] [+ linenum] [file ...]

描述 (DESCRIPTION)

More 是 一個 過濾器, 用于 分頁 顯示 (一次一屏) 文本. 這個 版本 非常 基本. 用戶 應該 知道 less(1) 提供了more(1) 的 模擬, 并且 做了 增強.

選項 (OPTION)
下面 介紹 命令行選項. 選項 可以 從 環境變量 MORE 中獲取 (要 確保 它們 以 短橫線 開頭 (``-’’)), 但是 命令行
選項 能夠 覆蓋 它們.

-num 這個選項指定屏幕的行數 (以整數表示).-d 讓 more 給 用戶 顯示 提示信息 "[Press space to continue, 'q' to quit.]", 當 用戶 按下 其他鍵 時, 顯示"[Press 'h' for instructions.]", 而不是 揚聲器 鳴笛.-l More 在 通常情況下 把 ^L (form feed) 當做 特殊字符, 遇到 這個字符 就會 暫停. -l 選項 可以 阻止 這種特性.-f 使 more 計數 邏輯行, 而不是 屏幕行 (就是說, 長行 不會 斷到 下一行).-p 不卷屏, 而是 清除 整個屏幕, 然后 顯示 文本.-c 不卷屏, 而是 從 每一屏的 頂部 開始 顯示 文本, 每 顯示完 一行, 就 清除 這一行的 剩余部分.-s 把 重復的空行 壓縮成 一個 空行.-u 防止下劃線.+/ 在 顯示 每個文件 前, 搜索 +/ 選項 指定的 文本串.+num 從行號 num 開始顯示.
3、less命令

和more命令基本相同,也是分頁顯示內容。不過less命令在顯示文件時,允許用戶向前或向后翻閱文件,而more命令只能向后翻閱文件。參數與more命令類似。查看過程中可通過q按鍵退出查看

#less命令 less [option] filename

使用less命令查看”test“文件,使用↑或↓上下滑動翻看

4、head命令

只顯示文件或標準輸入(從計算機的標準輸入設備中得到的信息流,通常是指從鍵盤、鼠標等獲得的數據)的頭幾行內容。如果用戶希望查看文件頭部信息便可使用該命令。查看過程中可通過q按鍵退出查看

#head命令 head - number filename #注釋:輸出前n行,如果不指明行數(即number參數)大小,默認為10行,若不指明文件(即filename參數),則默認從標準輸入讀取。

分別演示從標準輸入讀取、從”test”文件讀取。(test 文件內容是數字 1~100)

用man幫助手冊查看head的使用cman head

名稱

head - 輸出文件的起始部分

概述

head [選項]... [文件]...

描述
將文件列表中每個文件的起始10行內容輸出至標準輸出。如果指定多個文件,則會在每個文件的部分之前添加給定文件
名稱。

如果沒有指定文件,或者指定文件為“-”,則從標準輸入讀取。必選參數對長短選項同時適用。-c, --bytes=[-]NUM顯示每個文件的前 NUM 個字節;以 '-' 起始,則顯示每個文件中不包含最后 NUM 個字節的全部內容-n, --lines=[-]NUM顯示前 NUM 行而不是前10行;以 '-' 起始,則顯示每個文件中不包含最后 NUM 行的全部內容-q, --quiet, --silent不顯示給出文件名的首部-v, --verbose顯示給出文件名的首部-z, --zero-terminated以 NUL 作為行的分隔符,而非換行符--help 顯示此幫助信息并退出--version顯示版本信息并退出NUM 可以帶倍數后綴:b 512, kB 1000, K 1024, MB 1000*1000, M 1024*1024, GB 1000*1000*1000, G1024*1024*1024, 對于 T, P, E, Z, Y 同樣適用。
5、tail命令

與head命令的功能相對應,用于查看文件尾部。同樣的如果沒有指定文件,則默認從標準輸入讀取。查看過程中可通過q按鍵退出查看

#tail命令 tail option filename

使用tail +90 test從“test”文件的第90行顯示至末尾,使用tail -5 test顯示“test”文件倒數第五行至末尾。

用man幫助手冊查看tail的使用cman tail

NAME(名稱)

tail - 輸出文件的末尾部分

SYNOPSIS(總覽)

../src/tail [OPTION]... [FILE]...

DESCRIPTION(描述)

在標準輸出上顯示每個FILE的最后10行. 如果多于一個FILE,會一個接一個地顯示, 并在每個文件顯示的首部給出文件名. 如果沒有FILE,或者FILE是-,那么就從標準輸入上讀取.--retry即使tail開始時就不能訪問 或者在tail運行后不能訪問,也仍然不停地嘗試打開文件.-- 只與-f合用時有用.-c, --bytes=N輸出最后N個字節-f, --follow[={name|descriptor}]當文件增長時,輸出后續添加的數據; -f, --follow以及 --follow=descriptor 都是相同的意思-n, --lines=N輸出最后N行,而非默認的最后10行--max-unchanged-stats=N參看texinfo文檔(默認為5)--max-consecutive-size-changes=N參看texinfo文檔(默認為200)--pid=PID與-f合用,表示在進程ID,PID死掉之后結束.-q, --quiet, --silent從不輸出給出文件名的首部-s, --sleep-interval=S與-f合用,表示在每次反復的間隔休眠S秒-v, --verbose總是輸出給出文件名的首部--help 顯示幫助信息后退出--version輸出版本信息后退出

二、文件內容查詢

文件查詢命令主要是指grep、egrep和fgrep命令。這組命令以指定的查找模式搜索文件,通知用戶在什么文件中搜索到與指定的模式匹配的字符串,并且打印出所有包含該字符串的文本行。其中,
grep命令一次只能搜索一個指定的模式;
egrep命令檢索擴展的正則表達式(包括表達式組和可選項);
fgrep命令檢索固定字符串,但并不識別正則表達式,是一種更為快速的搜索命令。

grep [option] [search pattern] [file1, file2,……] erep [option] [search pattern] [file1, file2,……] frep [option] [search pattern] [file1, file2,……]

使用ps命令結合管道查詢進程
ps -ef | grep "sleep" 把ps命令產生的進程信息通過管道把信息提取出來,再通過grep檢索到含有 sleep 的文本行

創建一個基礎“Hello World”的C程序,使用grep命令查看源碼中含有“Hello”的那一行。其中,關鍵字是一個字符串 Hello ,如果查詢沒有結果不會顯示任何內容,查詢成功顯示關鍵字所在的文本行

此外還可以用來查找當前目錄下的所有文件中是否含有指定字符串

用man幫助手冊查看grep的使用cman grep

NAME

grep, egrep, fgrep - 打印匹配給定模式的行

總覽 SYNOPSIS

grep [options] PATTERN [FILE...]grep [options] [-e PATTERN | -f FILE] [FILE...]

描述 DESCRIPTION

  • Grep 搜索以 FILE 命名的文件輸入 (或者是標準輸入,如果沒有指定文件名,或者給出的文件名是 - 的
    話),尋找含有與給定的模式 PATTERN 相匹配的內容的行。 默認情況下, grep 將把含有匹配內容的行打印出
    來。

  • 另外,也可以使用兩個變種程序 egrep 和 fgrep 。 Egrep 與 grep -E 相同。 Fgrep 與 grep -F 相同。

選項 OPTIONS

-A NUM, --after-context=NUM打印出緊隨匹配的行之后的下文 NUM 行。在相鄰的匹配組之間將會打印內容是 -- 的一行。-a, --text將一個二進制文件視為一個文本文件來處理;它與 --binary-files=text 選項等價。-B NUM, --before-context=NUM打印出匹配的行之前的上文 NUM 行。在相鄰的匹配組之間將會打印內容是 -- 的一行。-C NUM, --context=NUM打印出匹配的行的上下文前后各 NUM 行。在相鄰的匹配組之間將會打印內容是 -- 的一行。-b, --byte-offset在輸出的每行前面同時打印出當前行在輸入文件中的字節偏移量。--binary-files=TYPE如果一個文件的起始幾個字節表明文件包含二進制數據,那么假定文件是 TYPE 類型的。默認情況下,TYPE 是 binary ,并且 grep 一般會輸出一個一行的消息說一個二進制文件匹配,或者如果沒有匹配的話就沒有消息輸出。如果類型 TYPE 是 without-match ,那么 grep 假定二進制文件不會匹配;這樣做與 -I 選項等價。如果類型 TYPE 是 text ,那么 grep 將一個二進制文件視為文本文件來處理;它與-a 選項等價。 警告: grep --binary-files=text 可能會輸出二進制的無用內容。如果輸出設備是一個終端,并且終端的驅動將這些輸出中的一些當作命令,可能會帶來惡劣的副作用。--colour[=WHEN], --color[=WHEN]在匹配的行周圍以 GREP_COLOR 環境變量中指定的記號來標記。WHEN 可以是 `never', `always', 或是`auto'。-c, --count禁止通常的輸出;作為替代,為每一個輸入文件打印一個匹配的行的總數。如果使用 -v, --invert-match 選項 (參見下面),將是不匹配的行的總數。-D ACTION, --devices=ACTION如果輸入文件是一個設備,FIFO 或是套接字 (socket) ,使用動作 ACTION 來處理它。默認情況下,動作 ACTION 是 read ,意味著設備將視為普通文件那樣來讀。如果動作 ACTION 是 skip ,將不處理而直接跳過設備。-d ACTION, --directories=ACTION如果輸入文件是一個目錄,使用動作 ACTION 來處理它。默認情況下,動作 ACTION 是 read ,意味著目錄將視為普通文件那樣來讀。如果動作 ACTION 是 skip ,將不處理而直接跳過目錄。如果動作ACTION 是 recurse , grep 將遞歸地讀每一目錄下的所有文件。這樣做和 -r 選項等價。-E, --extended-regexp將模式 PATTERN 作為一個擴展的正則表達式來解釋 (參見下面)。-e PATTERN, --regexp=PATTERN使用模式 PATTERN 作為模式;在保護以 - 為起始的模式時有用。-F, --fixed-strings將模式 PATTERN 視為一個固定的字符串的列表,用新行 (newlines) 分隔,只要匹配其中之一即可。-P, --perl-regexp將模式 PATTERN 作為一個 Perl 正則表達式來解釋。-f FILE, --file=FILE從文件 FILE 中獲取模式,每行一個。空文件含有0個模式,因此不匹配任何東西。-G, --basic-regexp將模式 PATTERN 作為一個基本的正則表達式 (參見下面) 來解釋。這是默認值。-H, --with-filename為每個匹配打印文件名。-h, --no-filename當搜索多個文件時,禁止在輸出的前面加上文件名前綴。--help 輸出一個簡短的幫助信息。-I 處理一個二進制文件,但是認為它不包含匹配的內容。這和 --binary-files=without-match 選項等價。-i, --ignore-case忽略模式 PATTERN 和輸入文件中的大小寫的分別。-L, --files-without-match禁止通常的輸出;作為替代,打印出每個在通常情況下不會產生輸出的輸入文件的名字。對每個文件的掃描在遇到第一個匹配的時候就會停止。-l, --files-with-matches禁止通常的輸出;作為替代,打印出每個在通常情況下會產生輸出的輸入文件的名字。對每個文件的掃描在遇到第一個匹配的時候就會停止。-m NUM, --max-count=NUM在找到 NUM 個匹配的行之后,不再讀這個文件。如果輸入是來自一個普通文件的標準輸入,并且已經輸出了 NUM 個匹配的行, grep 保證標準輸入被定位于退出時的最后一次匹配的行之后,不管是否指定了要輸出緊隨的下文的行。這樣可以使一個調用程序恢復搜索。當 grep 在 NUM 個匹配的行之后停止,它會輸出任何緊隨的下文的行。當使用了 -c 或 --count 選項的時候, grep 不會輸出比 NUM 更多的行。當指定了 -v 或 --invert-match 選項的時候, grep 會在輸出 NUM 個不匹配的行之后停止。--mmap 如果可能的話,使用 mmap(2) 系統調用來讀取輸入,而不是默認的 read(2) 系統調用。在一些情況下, --mmap 提供較好的性能。但是,如果一個輸入文件在 grep 正在操作時大小發生變化,或者如果發生了一個 I/O 錯誤, --mmap 可能導致不可知的行為 (包括core dumps)。-n, --line-number在輸出的每行前面加上它所在的文件中它的行號。-o, --only-matching只顯示匹配的行中與 PATTERN 相匹配的部分。--label=LABEL將實際上來自標準輸入的輸入視為來自輸入文件 LABEL 。這對于 zgrep 這樣的工具非常有用,例如:gzip -cd foo.gz |grep --label=foo something--line-buffering使用行緩沖,it can be a performance penality.-q, --quiet, --silent安靜。不向標準輸出寫任何東西。如果找到任何匹配的內容就立即以狀態值 0 退出,即使檢測到了錯誤。 參見 -s 或 --no-messages 選項。-R, -r, --recursive遞歸地讀每一目錄下的所有文件。這樣做和 -d recurse 選項等價。--include=PATTERN僅僅在搜索匹配 PATTERN 的文件時在目錄中遞歸搜索。--exclude=PATTERN在目錄中遞歸搜索,但是跳過匹配 PATTERN 的文件。

三、文件查找命令

1、find命令

該命令用于從指定的目錄開始,遞歸的搜索其各個子目錄,查找滿足條件的文件并對之采取相關的操作。此命令提供了相當多的查找條件,功能非常強大。find 命令的常用格式如下。

#簡單用法 find [option] filename #高級用法 find [-H] [-L] [-P] [-Olevel] [-D debugopts] [path...] [expression] #注:默認路徑為當前目錄;默認表達式為 -print #可以使用 find --help 查看詳細說明,或使用 man幫助手冊 或 info手冊

find 命令提供的尋找條件可以是一個用邏輯運算符 not 、and 、 or 組成的復合條件。

  • 邏輯與 and :命令中用 -a表示,是系統默認選項。
  • 邏輯或 or :命令中用-o表示。
  • 邏輯非 not :命令中用!表示。

1、在/usr/include/目錄下存放著許多頭文件,如果我們想要找出stdio.h這個頭文件,就可以使用find 命令實現。

使用命令find 路徑 以文件名方式查找 “文件名”的方式查找stdio.h

2、查找當前目錄下,所有以 .txt 為后綴的文件

用man幫助手冊查看find的使用cman find

NAME

find - 遞歸地在層次目錄中處理文件

總覽 SYNOPSIS

find [path...] [expression]

描述 DESCRIPTION

  • 這個文檔是GNU版本 find 命令的使用手冊。 find 搜索目錄樹上的每一個文件名,它從左至右運算給定的表達式,按照優先規則(見運 算符OPERATORS一節)進行匹配,直到得出結果(左邊運算在 ‘與’ 操作中得出假,在’或’ 操作中得出真),然后 find 移向下一個文件名。

  • 第一個以 ‘-’ , ‘(’ , ‘)’ , ‘,’ 或 ‘!’ 這些字符起始的參數是表達式的開始; 在它之前的任何參數是要搜索的路徑,在它之后的任何參數都是表達式的余下部分。 如果沒有路徑參數,缺省用當前目錄。如果沒有表達式,缺省表達式 用 ‘-print’.

  • 當所有文件都成功處理時 find 退出并返回狀態值0。如果發生錯誤則返回一個大于0的值。

選項 OPTIONS

所有的選項都總是返回真值,它們總會被執行,除非放在表達式中執行不到的地方。 因此,清楚起見,最好把它們放在表達式的開頭部分。 -help, --help列出 find 的命令行用法的概要,然后退出。數字參數可以這樣給出:+n 是比 n 大,-n 是比 n 小,n 正好是 n 。-name pattern基本的文件名(將路徑去掉了前面的目錄)與shell模式pattern相匹配。元字符(`*', `?', 還有`[]') 不會匹配文件名開頭的`.' 。使用 -prune 來略過一個目錄及其中的文件。查看 -path 的描述中的范例。-path pattern文件名與shell模式pattern相匹配。元字符不會對`/' 或 `.' 做特殊處理。-type c文件是 c 類型的。類型可取值如下:b 特殊塊文件(緩沖的)c 特殊字符文件(不緩沖)d 目錄p 命名管道 (FIFO)f 普通文件l 符號鏈接s 套接字D 門 (Solaris 特有)-uid n 文件的數字形式的用戶ID是 n 。-used n文件最后一次存取是在最后一次修改它的狀態的 n 天之后。-user uname文件的所有者是 uname (也可以使用數字形式的用戶ID).-print 返回true;在標準輸出打印文件全名,然后是一個換行符。運算符 OPERATORS以優先級高低順序排列:( expr )強制為優先! expr 如果 expr 是false則返回true-not expr與 ! expr 相同expr1 expr2與 (隱含的默認運算符);如果 expr1 為false則不會執行 expr2expr1 -a expr2與 expr1 expr2 相同expr1 -and expr2與 expr1 expr2 相同expr1 -o expr2或;如果 expr1 為true 則不會執行 expr2expr1 -or expr2與 expr1 -o expr2 相同expr1 , expr2列表;expr1 和 expr2 都會被執行。expr1 的值被忽略,列表的值是 expr2的值…… …… …… 以上只列出一部分參數,find 命令功能非常強大,提供了和你很多參數可供選擇。 …… ……

2、locate 命令

該命令也用于查找文件,比find 命令的搜索速度更快。使用時需要一個數據庫,這個數據庫由每天的例行工作(crontab)程序來建立。建立好數據庫后,就可以方便地用來搜尋所需文件了。

locate [option] filename

locate與find 不同: find 是去硬盤找,locate 只在/var/lib/slocate資料庫中找。

locate的速度比find快,它并不是真的查找,而是查數據庫,一般文件數據庫在/var/lib/slocate/slocate.db中,所以locate的查找并不是實時的,而是以數據庫的更新為準,一般是系統自己維護,也可以手工升級數據庫,命令為:locate -u 。

#相關命令 /usr/bin/updatedb 主要用來更新數據庫,通過crontab自動完成的 /usr/bin/locate 查詢文件位置 /etc/updatedb.conf updatedb的配置文件 /var/lib/mlocate/mlocate.db 存放文件信息的文件

如果查詢時顯示“locate: can not open `/var/lib/mlocate/mlocate.db’: No such file or directory”。此時執行“updatedb”更新下數據庫即可。

如下圖所示,查找 “passwd” 文件,只顯示前四行。

用man幫助手冊查看locate的使用man locate

OPTIONS

-A, --allPrint only entries that match all PATTERNs instead of requiring only one of them to match.-b, --basenameMatch only the base name against the specified patterns. This is the opposite of --whole‐name.-c, --countInstead of writing file names on standard output, write the number of matching entriesonly.-d, --database DBPATHReplace the default database with DBPATH. DBPATH is a :-separated list of database filenames. If more than one --database option is specified, the resulting path is a concatena‐tion of the separate paths.An empty database file name is replaced by the default database. A database file name -refers to the standard input. Note that a database can be read from the standard inputonly once.-e, --existingPrint only entries that refer to files existing at the time locate is run.-L, --followWhen checking whether files exist (if the --existing option is specified), follow trailingsymbolic links. This causes broken symbolic links to be omitted from the output.This is the default behavior. The opposite can be specified using --nofollow.-h, --helpWrite a summary of the available options to standard output and exit successfully.-i, --ignore-caseIgnore case distinctions when matching patterns.-l, --limit, -n LIMITExit successfully after finding LIMIT entries. If the --count option is specified, theresulting count is also limited to LIMIT.-m, --mmapIgnored, for compatibility with BSD and GNU locate.-P, --nofollow, -HWhen checking whether files exist (if the --existing option is specified), do not followtrailing symbolic links. This causes broken symbolic links to be reported like otherfiles.This is the opposite of --follow.-0, --nullSeparate the entries on output using the ASCII NUL character instead of writing each entryon a separate line. This option is designed for interoperability with the --null option ofGNU xargs(1).-S, --statisticsWrite statistics about each read database to standard output instead of searching for filesand exit successfully.-q, --quietWrite no messages about errors encountered while reading and processing databases.-r, --regexp REGEXPSearch for a basic regexp REGEXP. No PATTERNs are allowed if this option is used, but thisoption can be specified multiple times.--regexInterpret all PATTERNs as extended regexps.-s, --stdioIgnored, for compatibility with BSD and GNU locate.-V, --versionWrite information about the version and license of locate on standard output and exit suc‐cessfully.-w, --wholenameMatch only the whole path name against the specified patterns.This is the default behavior. The opposite can be specified using --basename.

三、文本處理命令

文本處理命令主要包括 sort 排序和 uniq 去重兩個操作。

1、sort 命令

該命令用于對文件中各行進行排序。它有許多非常實用的選項,最初是用來對數據庫格式的文件內容進行各種排序操作的。該命令逐行地對文件中的內容進行排序,如果兩行的首字符相同,那該命令將繼續比較下一字符。sort 排序是根據從輸入行抽取的一個或多個關鍵字進行比較來完成的,默認情況下以整行為關鍵字按ASCII字符順序進行排序。

sort [option] filename

創建一個文件 “ name ” ,使用sort 進行排序

sort 命令也可以對標準輸入進行操作。用cat 命令創建一個臨時的 “tmp.txt” 文件,與之前的 “name” 文件合并,并且通過管道使用 sort 命令排序,最后使用輸出重定向 輸出到新文件 “newname” 文件中。如下圖所示。

用man幫助手冊查看sort的使用cman sort

NAME(名稱)

sort - 對文本文件的行排序

SYNOPSIS(總覽)

../src/sort [OPTION]... [FILE]...

DESCRIPTION(描述)

將排序好的所有文件串寫到標準輸出上.+POS1 [-POS2]從關鍵字POS1開始,到POS2*之前*結束(快過時了) 字段數和字符偏移量都從零開始計數(與-k選項比較)-b 忽略排序字段或關鍵字中開頭的空格-c 檢查是否指定文件已經排序好了,不排序.-d 在關鍵字中只考慮[a-zA-Z0-9]字符.-f 將關鍵字中的小寫字母折合成大寫字母.-g 按照通常的數字值順序作比較,暗含-b-i 在關鍵字中只考慮[\040-\0176]字符.-k POS1[,POS2]從關鍵字POS1開始,*到*POS2結束. 字段數和字符偏移量都從1開始計數(與基于零的+POS格式作比較)-l 按照當前環境排序.-m 合并已經排序好的文件,不排序.-M 按(未知的)<`JAN'<...<`DEC'的順序比較,暗含-b-n 按照字符串的數值順序比較,暗含-b-o FILE將結果寫入FILE而不是標準輸出.-r 顛倒比較的結果.-s 通過屏蔽最后的再分類比較來穩定排序.-t SEP 使用SEP來替代空格的轉換non-.-T DIRECTORY使用DIRECTORY作為臨時文件,而不是$TMPDIR或者/tmp-u 如果有-c,則按嚴格的順序進行檢查; 如果有-m,則只輸出相等順序的第一個.-z 以0字節結束行,而不是使用換行符,這是為了找到-print0--help 顯示幫助并退出.--version輸出版本信息并退出.POS為F[.C][OPTS],這里的F指的是字段數,而C為字段中的字符位置,這在-k中是從開 始計數的,而在過時的格式中是從零開始的.OPTS可由一個或多個Mbdfinr組成;這有效地屏蔽了 對于那個關鍵字的全局-Mbdfinr設置.如果沒有指定關鍵字,則使用整行作為關鍵字.如 果沒有FILE,或者FILE是-,則從標準輸入讀取.

2、uniq 命令

文件經過處理后可能會存在重復行,此命令用于去除重復行,刪除多余的行。正常情況下,第二個及以后更多的重復行將被刪除。行比較是根據所給的字符集的排列序列進行的,該命令加工后的結果被寫入到輸出文件中。輸入文件和輸出文件不能相同。如果文件名用“-”,則表示從標準輸入讀取。

uniq [option] filename

在文件 “tmp.txt” 和 “newname” 中存在相同項,合并后就會存在重復項,使用 uniq命令去除重復項。
其中,使用-d 參數只顯示重復項,使用-u參數,只顯示不重復項

用man幫助手冊查看uniq的使用cman uniq

名稱

uniq - 報告或省略重復行

概述

uniq [選項]... [輸入 [輸出]]

描述
從輸入文件(或標準輸入)篩選一組相鄰的匹配行,寫入到輸出文件(或標準輸出)。

如沒有指定選項,則只保留一組匹配行中的第一行。必選參數對長短選項同時適用。-c, --count每行前附上重復出現的次數作為前綴-d, --repeated僅顯示重復行,每組一個-D 顯示所有重復的行-D, --all-repeated[=METHOD]類似 -D,但是允許使用空行對各個組進行分隔;METHOD={none(default),prepend,separate}-f, --skip-fields=N比較時跳過前 N 個域--group[=METHOD]顯示所有行,用一個空行分隔每一組 METHOD={separate(default), prepend, append, both}-i, --ignore-case比較時忽略大小寫-s, --skip-chars=N比較時跳過前 N 個字符-u, --unique只顯示不重復的行-z, --zero-terminated以 NUL 作為行的分隔符,而非換行符-w, --check-chars=N對每行第 N 個字符以后的內容不作比較--help 顯示此幫助信息并退出--version顯示版本信息并退出域指一個由空字符(通常是空格和/或制表符)和緊隨的非空字符組成的序列。同時使用跳過域和跳過字符選項時,先跳過域再跳過字符。注意:“uniq”只檢測那些相鄰的重復行。你或許需要先對輸入排序,或者使用“sort -u”而非“uniq”。另外,比較的細則會依據“LC_COLLATE”所指定的規則。

五、文件內容統計命令(wc)

文件內容統計命令主要是指 wc 命令。該命令統計給定文件中的字節數、字行數。如果沒有給出文件名,則從標準輸入讀取。 wc 同時也給出所有指定文件的總統計數。字是由空格字符區分開的最大字符串。

wc [option] filename # 常用參數 -l 行數 -w 統計字數 -c 統計字節數

統計下列文件的行數、字數、字節數

用man幫助手冊查看wc 的使用cman wc

名稱

wc - 輸出文件中的行數、單詞數、字節數

概述

wc [選項]... [文件列表]...wc [選項]... --files0-from=F

描述
對每個文件輸出行、單詞和字節統計數,如果指定的文件多于一個,則同時輸出總行數。單詞指以空白字符分隔的長度非零的字符序列。

如果沒有指定文件,或者指定文件為“-”,則從標準輸入讀取。下列選項可被用來選擇應該顯示哪些計數信息。它們總是按照行數、單詞數、字符數、字節數、最大行長度的順序顯示。-c, --bytes輸出字節統計數-m, --chars輸出字符統計數-l, --lines輸出換行符統計數--files0-from=F將文件F 中的以 NUL 結尾的名字所指定的文件作為待統計文件;如果文件F 為“-”,則從標準輸入讀取這些名字-L, --max-line-length打印最大顯示寬度-w, --words輸出單詞統計數--help 顯示此幫助信息并退出--version顯示版本信息并退出

六、文件比較命令

1、comm 命令

該命令對兩個已排好序的文件進行比較,其中file1 和 file2 是已排序的文件。common 讀取這兩個文件,然后生成 3 列輸出:僅在 file1 中出現的行;僅在 file2 中出現的行;在兩個文件中都存在的行。如果文件名用“-”,則表示從標準輸入讀取。

comm [option] filename #選項中提供1、2、3選項控制相應的列是否顯示 “-12” 只顯示兩個文件中都存在的 “-13” 只顯示第二個文件中出現而在第一個文件中未出現的 “-23” 只顯示第一個文件中出現而在第二個文件中未出現的 “-123” 什么都不顯示tips:可以把 "3” 看成一種屏蔽某列的操作,如“-13”,屏蔽第一列,只顯示出現在第二列(而未在第二列出現的)

在文件 “com1” 中輸入“ 1\2\3\4\5” , 在文件 “com2” 中輸入 “1\3\5\7” ,使用comm命令比較。

使用單個數字,也會有不同的效果:
使用comm -1 com1 com2命令,把 “com2” 文件的信息比較后輸出,第一列為 “com2” 獨有,第二列為兩文件共有;
使用comm -2 com1 com2命令,把 “com1” 文件的信息比較后輸出,第一列為 “com1” 獨有,第二列為兩文件共有;
使用comm -3 com1 com2命令,把兩個文件的信息比較后輸出,第一列為 “com1” 獨有,第二列為 “com2” 獨有;

用man幫助手冊查看comm 的使用cman comm

NAME

comm - 逐行比較兩個已排序的文件

總覽 (SYNOPSIS)

../src/comm [OPTION]... LEFT_FILE RIGHT_FILE

描述 (DESCRIPTION)
逐行比較 已排序的 文件 LEFT_FILE 和 RIGHT_FILE.

-1 屏蔽 左邊文件 (LEFT_FILE) 中 不同于 右邊文件 的 行(或內容)-2 屏蔽 右邊文件 (RIGHT_FILE) 中 不同于 左邊文件 的 行(或內容)-3 屏蔽 兩個文件 中 相同 的 行(或內容)(譯注: 原文為 "不相同的行", 疑有誤)-l 認為 輸入數據 根據 當前的 locale 排了序 (應該 給 sort 提供 -l 選項).--help 顯示 幫助信息, 然后 結束--version顯示 版本信息, 然后 結束

2、diff 命令

該命令用于逐行比較兩文件,列出其中不同之處。它對給出的文件進行系統的檢查,并顯示出兩文件中所有不同的行,不要求事先對文件進行排序。

diff [option] file1 file2 diff [option] dir1 dir2

該命令運行后輸出通常由下述形式的行組成

n1 a n3, n4 n1, n2 d n3 n1, n2 c n3, n4

以上說明如何將 file1 轉變成 file2 ,并給出了兩文本文件之間的差異,其中,字母(a、d和c)之前的行號 n1、n2 是針對 file1 的,其后面的行號(n3,、n4)是針對 file2 的。字母 a、d 和 c 分別表示附加、刪除和修改操作。

在上述形式的每一行的后面跟隨受到影響的若干行,以 “<” 打頭的行屬于第一個文件,以 “>” 打頭的屬于第二個文件。

Tips:diff 能區別塊和字符設備文件及FIFO(管道文件),不會把它們與普通文件進行比較

如果比較的是目錄,則 diff 會產生很多信息。如果一個目錄中只有一個文件,則產生一條消息,指出該目錄路徑名和其中的文件名。

使用 diff命令比較 “file1” 和 “file2”

上述"1a2"表示把 “file1”的第一行后追加上 ”file2“ 的第二行,即”#include <stdlib.h>“
??"4c5"表示把 “file1”的第四行語句修改成 ”file2“ 的第五行的語句,即”char name[10] = "file1"; ==> char name[10] = "file2";“
若按上述操作,則可把 ”file1“ 轉換成 ”file2“

用man幫助手冊查看diff 的使用cman diff

NAME

diff - 找出兩個文件的不同點

總覽

diff [選項] 源文件 目標文件

描述

  • 在最簡單的情況是, diff 比較兩個文件的內容 (源文件 和 目標文件). 文件名可以是 - 由標準輸入設備讀入的文本.
  • 作為特別的情況是, diff - - 比較一份標準輸入的它自己的拷貝
  • 如果 源文件 是一個目錄和 目標文件 不是(目錄), diff 會比較在 源文件(目錄) 里的文件中和 目標文件同名的(文件),.
    反過來也一樣. 非目錄文件不能是 -.
  • 如果 源文件 和 目標文件 都是目錄, diff 比較兩個目錄中相應的文件, 依照字母次序排序;這個比較是不會遞歸的,
    除非給出 -r 或者 --recursive. diff 不把一個目錄的內容看為它是一個文件來比
用man幫助手冊查看diff 的使用cman diff
較。被指定的文件不 能是標準的輸入, 因為標準的輸入是無名的并且"有一樣的名字的文 件"的觀點不適用。 diff 的選項由 -, 開始 所以正常地 源文件(名) 和 目標文件(名) 不可以用 - 開頭.然而, -- 可以被它視為保留的即使作為文件名的開頭( they begin with -.)

選項
下面是 GNU所接受的 diff 的所有選項的概要. 大多數的選項有兩個相同的名字,一個是單個的 跟在 - 后面字母,
另一個是由 – 引出的長名字. 多個單字母選項(除非它們產生歧義)能夠組合為單行的命令行語法 -ac 是等同
于 -a -c. 長命名的選項能被縮短到他們的名字的任何唯一的前綴. 用 ([ 和 ]) 括起來顯示選項產生歧義的選項

-行數(一個整數)顯示上下文 行數 (一個整數). 這個選項自身沒有指定輸出格式,這是沒有效果的,除非和 -c或者 -u 組合使用. 這是已廢置的選項,對于正確的操作, 上下文至少要有兩行。-a 所有的文件都視為文本文件來逐行比較,甚至他們似乎不是文本文件.-b 忽略空格引起的變化.-B 忽略插入刪除空行引起的變化.--brief僅報告文件是否相異,在乎差別的細節.-c 使用上下文輸出格式.-C 行數(一個整數)--context[=lines]使用上下文輸出格式,顯示以指定 行數 (一個整數), 或者是三行(當 行數 沒有給出時. 對于正確的操作, 上下文至少要有兩行.--changed-group-format=format使用 format 輸出一組包含兩個文件的不同處的行,其格式是 if-then-else .-d 改變算法也許發現變化的一個更小的集合.這會使 diff 變慢 (有時更慢).-D name合并 if-then-else 格式輸出, 預處理宏(由name參數提供)條件.-e--ed 輸出為一個有效的 ed 腳本.--exclude=pattern比較目錄的時候,忽略和目錄中與 pattern(樣式) 相配的.--exclude-from=file比較目錄的時候,忽略和目錄中與任何包含在 file(文件) 的樣式相配的文件和目錄.--expand-tabs在輸出時擴展tab為空格,保護輸入文件的tab對齊方式-f 產生一個很象 ed 腳本的輸出,但是但是在他們在文件出現的順序有改變-F regexp在上下文和統一格式中,對于每一大塊的不同,顯示出匹配 regexp. 的一些前面的行.--forward-ed產生象 ed 腳本的輸出,但是它們在文件出現的順序有改變。-h 這選項現在已沒作用,它呈現Unix的兼容性.-H 使用啟發規則加速操作那些有許多離散的小差異的大文件.--horizon-lines=lines比較給定行數的有共同前綴的最后行,和有共同或綴的最前行.-i 忽略大小寫.-I regexp忽略由插入,刪除行(由regexp 參數提供參考)帶來的改變.--ifdef=name合并 if-then-else 格式輸出, 預處理宏(由name參數提供)條件.--ignore-all-space在比較行的時候忽略空白.--ignore-blank-lines忽略插入和刪除空行--ignore-case忽略大小寫.--ignore-matching-lines=regexp忽略插入刪除行(由regexp 參數提供參考).--ignore-space-change忽略空白的數量.--initial-tab在文本行(無論是常規的或者格式化的前后文關系)前輸出tab代替空格. 引起的原因是tab對齊方式看上去象是常規的一樣.…… …… …… 由于信息過長,以下部分省略 …… …… ……

七、文件的復制、移動和刪除命令

1、cp 命令

該功能是將給出的文件或目錄復制到另一文件或目錄中,就如同 DOS 下的 copy 命令一樣,功能非常強大。

cp [option] [src_file|src_dir] [dst_file|dst_dir]

將目錄下所有以 ”.txt“ 結尾的文件,拷貝至當前目錄下的 dir 目錄下

拷貝 “hello” 文件為 ”newHello“ 文件

用man幫助手冊查看cp 的使用cman cp

名稱

cp - 復制文件和目錄

概述

cp [選項]... [-T] 來源 目標cp [選項]... 來源... 目錄cp [選項]... -t 目錄 來源...

描述
從指定的來源文件復制到目標處,或者將多個源文件復制到目標目錄中。

必選參數對長短選項同時適用。-a, --archive與 -dR --preserve=all 相同。--attributes-only不要復制文件數據,僅僅復制其屬性值。--backup[=控制參數]為每個已存在的目標文件創建一個備份-b 類似 --backup,但是不接受參數--copy-contents遞歸模式下復制特殊文件的內容-d 與 --no-dereference --preserve=links 相同-f, --force如果有一個已存在且無法打開的目標文件,刪除之并進行重試(該選項在 -n 選項同時被使用時無效)i, --interactive覆寫前進行提示(覆蓋先前的 -n 選項)-H 跟隨源文件命令行中顯式給出的符號鏈接-l, --link使用硬鏈接取代復制-L, --dereference總是跟隨源文件中的符號鏈接-n, --no-clobber不要覆寫已有的文件(覆蓋先前給出的 -i 選項)-P, --no-dereference永遠不要跟隨源文件中的符號鏈接-p 與 --preserve=mode,ownership,timestamps 相同--preserve[=屬性列表]保留指定的屬性(默認:模式、從屬關系、時間戳),如果可能的話還有額外屬性:上下文、鏈接(links)、xattr、all--no-preserve=屬性列表不要保留指定的屬性--parents在目標目錄下使用完整的源文件名-R, -r, --recursive遞歸地復制文件--reflink[=WHEN]控制克隆/寫入時復制(CoW)副本。詳情見下文--remove-destination在嘗試打開每個已存在的目標文件之前對其進行刪除(和 --force行為相反)--sparse=WHEN控制稀疏文件的創建。詳情見下文--strip-trailing-slashes移除每個源文件參數后的任何末尾斜杠-s, --symbolic-link使用符號鏈接代替復制-S, --suffix=后綴名使用給定名稱代替常用備份后綴名-t, --target-directory=目錄將所有源文件參數給出的內容復制到目標目錄中-T, --no-target-directory將目標文件當作普通文件對待(而不是目錄)-u, --update僅在源文件比目標文件新,或者目標文件不存在的情況下復制-v, --verbose解釋正在發生的情況-x, --one-file-system停留在當前文件系統中-Z 將目標文件 SELinux 安全上下文設置為默認類型--context[=CTX]類似 -Z,或者如果給定了上下文(CTX)那么將 SELinux 或者SMACK 安全上下文設置為給定值--help 顯示此幫助信息并退出--version顯示版本信息并退出默認情況下,程序會使用一種粗糙的啟發式算法探測源文件是否是稀疏的,若判定為稀疏,則目標文件也會以稀疏形式創建。這個行為可以通過--sparse=auto 指定。若指定 --sparse=always,將在源文件包含足夠多內容為零的字節序列時將其視作稀疏文件。使用 --sparse=never 以禁止創建稀疏文件。當指定了 --reflink[=always] 時,進行輕量級復制,其中的數據塊僅在被修改時進行復制。如果這樣的復制失敗,或無法實行,或者指定了 --reflink=auto 時,回退到標準復制。備份的后綴為“~”,除非設置了 --suffix 或者SIMPLE_BACKUP_SUFFIX。版本控制方式可以使用 --backup 選項或者 VERSION_CONTROL 環境變量進行指定。可用的值如下:none, off永遠不制作備份(即使給出了 --backup )numbered, t制作編號的備份existing, nil如果已編號副本存在則編號,否則采用簡單方式simple, never總是制作簡單備份作為一個特例,cp 將在同時給出 force 選項與 backup 選項,并且源文件和目標文件是同一個已存在普通文件的情況下制作備份副本。

2、mv 命令

使用 mv命令可以給目錄或文件改名,此外,mv 命令的主要用途是將一個文件或目錄移動到另一個目錄中,該命令如同 DOS 下的 ren 和 move 的組合。

mv [option] [src_file|src_dir] [dst_file|dst_dir]

用mv命令將 ”newHello“ 文件改名為 ”Hello“

將 ”com1、com2、file1、file2“ 移動到 ”dir“目錄下

用man幫助手冊查看mv 的使用cman mv

NAME

mv - 移動 (改名) 文件

摘要

mv [選項]... 源文件 目標文件mv [選項]... 源文件... 目錄mv [選項]... --target-directory=DIRECTORY SOURCE...

描述
改“源文件”名到“目標文件”名, 或移動“源文件”(可以不只一 個)到一個“目錄”。

--backup[=CONTROL]為現有的每一個目標文件作一個備份-b 和--backup一樣但是不接受參數-f, --force覆蓋前永不提示-i, --interactive覆蓋前提示--strip-trailing-slashes刪除任何“源文件”參數后面跟隨的斜杠-S, --suffix=SUFFIX省略一般的備份后綴--target-directory=DIRECTORY移動全部“源文件”參數到“目錄”中-u, --update只移動更老的或者標記新的非目錄-v, --verbose說明完成了什么--help 顯示幫助且退出程序--version輸出版本信息且退出程序這是備份后綴 `~', 除非設定 --suffix 或 SIMPLE_BACKUP_SUFFIX。 這個版本管理方法可以選擇通過 --backup 選項或通過VERSION_CONTROL 環境變量。這些值是:none, off永不做備份 (即使用 --backup)numbered, t做備份編號existing, nil編號,如果編號備份存在,用其它的簡單方法simple, never總是做簡單備份

3、rm 命令

rm命令是個及其危險的命令,它用于刪除文件,一旦文件被刪除恢復起來相當麻煩。因此,在使用此命令時要格外小心。此外,如果對于鏈接文件,該命令只是刪除了鏈接,原有文件均保持不變。

rm [option] [files|dirs] #常用的參數 -f 忽略不存在的文件,從不給出提示 -r 遞歸的刪除參數中列出的全部目錄和子目錄及其中的文件。此參數常用來輸出非空目錄及其下的文件 -i 進行交互式刪除,及刪除時會讓用戶確認每一個文件是否要刪除,輸入 y 確認,輸入其他內容均認為是取消。

使用cp命令及其參數對 ”tmp“ 目錄進行操作

用man幫助手冊查看rm 的使用cman rm

名稱

rm - 移除文件或者目錄

概述

rm [選項]... 文件列表...

描述
本手冊頁記錄 GNU 版本的 rm。rm 移除每一個指定的文件。默認情況下,它不刪除目錄。

如果指定 -I 或 --interactive=once 選項,且給出了三個以上的文件或指定了 -r, -R 或 --recursive 選項,
則 rm 將提示并詢問用戶是否繼續進行整個操作。如果未得到用戶的確認,則整個命令將被中止。

否則,如果一個文件不可寫、標準輸入是一個終端且未給出 -f 或 --force 選項,或 --interactive=always 選項
被給出, rm 將提示用戶是否刪除該文件。如果未得到用戶的確認,則該文件將被跳過。

選項

刪除 (unlink) 給定文件。-f, --force忽略不存在的文件和參數,從不提示-i 在每次刪除前提示-I 在進行遞歸刪除或刪除多于三個文件之前提示用戶一次;與 -i 相比較更少干擾用戶,但是仍然為大多數操作失誤起到保護作用。--interactive[=WHEN]根據 WHEN 確定提示用戶的頻率: "never"(從不)、"once" (-I)、或者 "always" (-i);如果沒有給定WHEN 參數,則總是提示用戶。--one-file-system在遞歸地刪除一個目錄結構時,跳過與對應命令行參數不在同一個文件系統中的所有目錄--no-preserve-root不對 '/' 做特殊處理--preserve-root不刪除 '/'(默認)-r, -R, --recursive遞歸地移除目錄及它們的內容-d, --dir刪除空目錄-v, --verbose解釋正在發生的情況--help 顯示此幫助信息并退出--version顯示版本信息并退出默認情況下,rm 不移除目錄。可以使用 --recursive(-r 或 -R)選項來同時移除列出的每個目錄及其內容。如果需要刪除一個文件名以連字符 “-”起始的文件,例如 '-foo',請使用下列命令:rm -- -foorm ./-foo請注意,如果你使用 rm 刪除一個文件,在有足夠技術水平和/或時間的情況下,它的部分內容可能仍然能夠被恢復。如果需要更高的保障來使得文件內容不可恢復,請考慮使用 shred.

八、文件鏈接命令(ln)

該命令可以在文件之間創建鏈接。這種操作實際上是給系統中已存在的某個文件指定另一個可用于訪問它的名稱。對于這個新的文件名,可以為其指定不同的訪問全向權限,以控制對信息的共享和安全性的問題。

鏈接分為兩種,一種是硬鏈接(Hard Link),另一種是符號鏈接(Sysmbolic Link 也稱為軟鏈接)。

建立硬鏈接時,鏈接文件和被連接文件必須位于同一文件系統中,并且不能建立指向目錄的鏈接。而建立符號鏈接時,則不存在這個問題。默認情況下產生硬鏈接。

ln [option] file link

在桌面創建一個目錄的軟鏈接和一個文件的軟連接,注意鏈接文件要用絕對路徑。

用man幫助手冊查看ln 的使用cman ln

NAME

ln -在文件之間建立連接

總覽

ln [options] source [dest]ln [options] source...directory

POSIX 選項:

[-f]GNU 選項(縮寫):[-bdfinsvF] [-S backup-suffix] [-V {numbered, existing, simple}] [--help][--version] [--]

描述

在Unix世界里有兩個’link’(連接)概念,一般稱之為硬連接和軟連接。一個硬連 接僅僅是一個文件名。(一個文件可以有好幾個文件名,只有
將最后一個文件名從 磁盤上刪除,才能把這個文件刪掉。文件名的個數是由ls(1)來確定的。所有的文件 名都處于同一個狀態,也就沒有什么“源
名字” 之說。通常文件系統里的一個 文件的所有名字包含著一樣的數據信息,不過這樣也不是必需的。)一個軟連接 (或符號連接)是完全不
同的:它是一個包含了路徑信息的小小的指定文件。因此, 軟連接可以指向不同文件系統里的文件(比如由NFS裝載的不同機器文件系統上的
文件),甚至可以指向一個不一定確實存在的文件。在軟連接文件被訪問(系統調用 open(2) 或stat(2))的時候,操作系統用該文件所包含的路
徑替換該文件的訪問介 入點,從而實現對所指文件的訪問。(用命令rm(1)和unlink(2)可以刪除連接,但 不是刪除該文件所指向的文件。系統指
定調用lstat(2)和readlink(2) 來讀取連接 文件與其所指文件的狀態。到底是對軟連接文件操作,還是對被指向文件操作,由 于不同操作系統件
存在不同的系統調用,而存在著差異。)

ln 在文件間產生連接。缺省時,產生硬連接,有-s選項,則產生符號(軟)連接。

如果僅僅只給出一個文件名,那么ln將在當前目錄里產生這個文件的連接, 也就是說,以該文件(的最后一個)名稱等同的名字在當前目錄里
產生一個連接 (GNU范圍內); 如果最后一個參數是一個已存在的目錄名, ln 將在那個目錄里給每一個源文件用以與源文件相同的文件名產
生連接, (不同情況見以下–no-dereference的描述); 如果只給出兩個文件名,ln將產生源文件的連接; 如果最后一個參數不是一個目錄名或
多于兩個文件名,則報錯。

缺省時,ln不刪除已存在的文件或符號連接。 (因此,它可以被用來鎖定目標文件,即當dest已經不存在時) 但選項-f可以強制執行。

在已存在的實現中,只有超級用戶才能建立目錄的硬連接。 POSIX 禁止系統調用link(2)和ln建立目錄的硬連接 (但是允許在不同的文件系統間
建立硬連接)。

POSIX 選項

-f 刪除已存在的目的文件。GNU 選項-d, -F, --directory允許超級用戶建立目錄硬連接。-f, --force刪除已存在的目的文件。-i, --interactive提示是否刪除已存在的目的文件。-n, --no-dereference當所給出的目的文件名是一個目錄的符號連接時,將其視為一般文件處理。當目的目錄名是一個確實存在的目錄(不是一個符號連接)時, 不進行模糊處理,而在那個目錄里建立連接。 但是當所指定的目的目錄名是一個符號連接時, 有兩種方式來對待用戶的要求。 ln 會視目的為一個普通目錄,并且在里面建立連接。 或者如同符號連接本身一樣地視其為一個非目錄。 這種情況下,ln 將在建立新連接之前刪除或備份這個符號連接。 缺省地,把符號連接視為普通目錄來對待。-s, --symbolic建立符號連接以替代硬連接。 在不支持符號連接的系統上,這個選項僅僅會產生一個錯誤提示而已。-v, --verbose在建立連接前顯示所操作的文件名。

九、目錄的創建與刪除

1、mkdir 命令

創建目錄時用mkdir命令。

mkdir [option] [dirname] # 常見參數 # “-m” 對新建目錄設置存取權限,也可以用 chmod 命令設置 # “-p” 可以是一個路徑名稱。此時若路徑中某些目錄尚不存在,加上此項后,系統將自動建立好這些尚不存在的目錄,即一次創建多個目錄

該命令要求在當前的工作目錄下具有寫權限,并且所創建的目錄名不能是當前目錄下已有的目錄名。

當前目錄下創建只有屬主有權限,并且創建了多個連續目錄

用man幫助手冊查看mkdir的使用cman mkdir

名稱

mkdir - 創建目錄

概述

mkdir [選項]... 目錄列表...

描述
如果目錄列表中的目錄不存在,則創建之。

必選參數對長短選項同時適用。-m, --mode=模式設置文件模式(類似chmod),而不是 rwx 減 umask-p, --parents如果目錄已存在,不報錯,且按需創建父目錄-v, --verbose為每一個已創建的目錄打印信息-Z 將每個創建的目錄的 SELinux 安全上下文設置為默認類型--context[=CTX]類似 -Z,或者如果指定了上下文,則將 SELinux 或者 SMACK 安全上下文設置為指定類型--help 顯示此幫助信息并退出--version顯示版本信息并退出

2、rmdir 命令

用于刪除空目錄。

rmdir [option] [diename] # 常見參數 # “-p” 遞歸的刪除,當子目錄刪除后其父目錄為空時,也一同刪除。如果被刪除或由于某種原因保留部分路徑,則系統在標椎輸出上顯示相應的信息

此命令用于刪除空目錄,并且要求用戶對當前目錄具有寫權限,如果該目錄非空,可以用rm -r dirname刪除

使用 rmdir 命令刪除之前創建的連續空目錄

用man幫助手冊查看mkdir的使用cman mkdir

名稱

rmdir - 刪除空目錄

概述

rmdir [選項]... 目錄列表...

描述
刪除目錄列表中的空目錄。

--ignore-fail-on-non-empty忽略每一個僅因目錄非空而導致的錯誤-p, --parents刪除目錄及其路徑上的目錄;比如,'rmdir -p a/b/c' 類似于 'rmdir a/b/c a/b a'-v, --verbose為每一個處理過的目錄輸出診斷信息--help 顯示此幫助信息并退出--version顯示版本信息并退出

十、切換目錄、路徑及顯示命令

1、cd 命令

cd 命令(change directory),作用是改變當前工作目錄,或者叫切換目錄。

cd [directory] #若沒有指定目錄則回到用戶主目錄,除此之外,還有以下幾種切換方式 # ”cd ~“ 回到主目錄 # ”cd -“ 最近使用過的的兩個工作目錄之間切換 # ”cd ..“ 回到上級目錄(父目錄)

cd切換目錄演示

用man幫助手冊查看cd 的使用cman cd

NAME

bash - GNU Bourne-Again SHell (GNU 命令解釋程序 “Bourne二世”)

概述(SYNOPSIS)

bash [options] [file]

描述(DESCRIPTION)

  • Bash 是一個與 sh 兼容的命令解釋程序,可以執行從標準輸入或者文件中讀取的命令。 Bash 也整合了
    Korn 和 C Shell (ksh 和 csh) 中的優秀特性。

  • Bash 的目標是成為遵循 IEEE POSIX Shell and Tools specification (IEEE Working
    Group 1003.2,可移植操作系統規約: shell 和工具) 的實現。

選項(OPTIONS)
除了在 set 內建命令的文檔中講述的單字符選項 (option) 之外,bash 在啟動時還解釋下列選項。

-c string 如果有 -c 選項,那么命令將從 string 中讀取。如果 string 后面有參數 (argument),它們將用于給位置參數 (positional parameter,以 $0 起始) 賦值。-i 如果有 -i 選項,shell 將交互地執行 ( interactive )。-l 選項使得 bash 以類似登錄 shell (login shell) 的方式啟動 (參見下面的 啟動(INVOCATION) 章節)。-r 如果有 -r 選項,shell 成為受限的 ( restricted ) (參見下面的 受限的shell(RESTRICTED SHELL) 章節)。-s 如果有 -s 選項,或者如果選項處理完以后,沒有參數剩余,那么命令將從標準輸入讀取。 這個選項允許在啟動一個交互 shell 時可以設置位置參數。-D 向標準輸出打印一個以 $ 為前導的,以雙引號引用的字符串列表。 這是在當前語言環境不是 C 或 POSIX時,腳本中需要翻譯的字符串。 這個選項隱含了 -n 選項;不會執行命令。[-+]O [shopt_option]shopt_option 是一個 shopt 內建命令可接受的選項 (參見下面的 shell 內建命令(SHELL BUILTINCOMMANDS) 章節)。 如果有 shopt_option,-O 將設置那個選項的取值; +O 取消它。 如果沒有給出shopt_option,shopt 將在標準輸出上打印設為允許的選項的名稱和值。 如果啟動選項是 +O,輸出將以一種可以重用為輸入的格式顯示。-- -- 標志選項的結束,禁止其余的選項處理。任何 -- 之后的參數將作為文件名和參數對待。參數 - 與此等價。Bash 也解釋一些多字節的選項。在命令行中,這些選項必須置于需要被識別的單字符參數之前。--dump-po-strings等價于 -D,但是輸出是 GNU gettext po (可移植對象) 文件格式--dump-strings等價于 -D--help 在標準輸出顯示用法信息并成功退出…… …… …… 以下省略 …… …… ……

2、pwd 命令

pwd 命令(print working directory),作用是顯示當前工作目錄的路徑。該命令無參數和選項。

演示pwd命令

用man幫助手冊查看pwd 的使用cman pwd

名稱

pwd - 顯示出當前/活動目錄的名稱

概述

pwd [選項]...

描述
輸出當前工作目錄的完整名稱。

-L, --logical使用環境變量中的 PWD,即使其中包含符號鏈接-P, --physical避免所有符號鏈接--help 顯示此幫助信息并退出--version顯示版本信息并退出如果沒有指定任何選項,默認使用 -P。

ls 命令

ls 命令(list),功能是列出目錄內容,只是用戶最常用的命令之一,該命令類似與 DOS 下的 dir 命令。對于每個目錄,該命令將列出其中所有的子目錄與文件。

ls [option] [dirname] filename # 常用以下參數 # ”-a“ 顯示指定目錄下所有的子目錄與文件,包括隱藏文件 # ”-A“ 顯示指定目錄下所有的子目錄與文件,包括隱藏文件,但不列出 ”.“ 與 ”..“ # ”-l“ 以長格式來顯示文件詳細信息。這個選項組最常用,列出的信息依次是:文件類型與權限、鏈接數、文件屬主、文件數組、文件大小以及建立或修改的時間和名字。

ls 命令測試

用man幫助手冊查看ls的使用cman ls

NAME

ls, dir, vdir - 列目錄內容

提要

ls [選項] [文件名...]POSIX 標準選項: [-CFRacdilqrtu1]GNU 選項 (短格式):[-1abcdfgiklmnopqrstuxABCDFGLNQRSUX] [-w cols] [-T cols] [-I pattern] [--full-time][--format={long,verbose,commas,across,vertical,single-column}] [--sort={none,time,size,extension}][--time={atime,access,use,ctime,status}] [--color[={none,auto,always}]] [--help] [--version] [--]

描述( DESCRIPTION )
程序 ls 先列出非目錄的文件項,然后是每一個目錄中的“可顯示”文件。如果 沒有選項之外的參數【譯注:即文件名部分為空】
出現,缺省為 “.” (當前目錄)。 選項“ -d ”使得目錄與非目錄項同樣對待。除非“ -a ” 選項出現,文件名以“.”開始的文件不屬“可顯示”文件。

以當前目錄為準,每一組文件(包括非目錄文件項,以及每一內含文件的目錄)分 別按文件名比較順序排序。如果“ -l”選項存在,每組文件前顯示一摘要行: 給出該組文件長度之和(以 512 字節為單位)。輸出是到標準輸出( stdout )。除非以“ -C ”選項要求按多列輸出,輸出 將是一行一個。然而,輸出到終端時,單列輸出或多列輸出是不確定的。可以分別 用選項“ -1 ” 或“ -C ”來強制按單列或多列輸出。-C 多列輸出,縱向排序。-F 每個目錄名加“ / ”后綴,每個 FIFO 名加“ | ”后綴, 每個可運行名加“ * ”后綴。-R 遞歸列出遇到的子目錄。-a 列出所有文件,包括以 "." 開頭的隱含文件。-c 使用“狀態改變時間”代替“文件修改時間”為依據來排序 (使用“ -t ”選項時)或列出(使用“ -l ”選項時)。-d 將目錄名象其它文件一樣列出,而不是列出它們的內容。-i 輸出文件前先輸出文件系列號(即 i 節點號: i-node number)。 -l 列出(以單列格式)文件模式( filemode ),文件的鏈 接數,所有者名,組名,文件大小(以字節為單位),時間信 息,及文件名。缺省時,時間信息顯示最近修改時間;可以以 選項“ -c ”和“ -u ”選擇顯示其它兩種時間信息。對于設 備文件,原先顯示文件大小的區域通常顯示的是主要和次要的 號(majorand minor device numbers)。-q 將文件名中的非打印字符輸出為問號。(對于到終端的輸出這是缺省的。)-r 逆序排列。-t 按時間信息排序。-u 使用最近訪問時間代替最近修改時間為依據來排序(使用 “ -t ”選項時)或列出(使用“ -l ”選項時)。-1 單列輸出。



注:文中使用 man 幫助手冊是使用的中文版本 cman,詳情Linux下的cman中文幫助手冊配置

總結

以上是生活随笔為你收集整理的Linux文件管理 | Liunx 常用命令的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。