您好,登錄后才能下訂單哦!
在Linux下對文件和目錄的操作是學習linux的基礎,文件的操作無非就是增刪改查等等。對于目錄的操作也是對目錄的增刪改查以及修改目錄屬性等操作。在了解目錄管理前得先了解目錄的結構。linux下的目錄是樹型結構,所有的目錄都從根(/)開始,其他的文件系統以掛載的方式掛載到目錄上去進行使用。訪問目錄時有相對路徑和絕對路徑之分。
相對路徑:路徑的寫法不是由根寫起的,而是在當前路徑的基礎之上的。例如:例如由 /usr/share/doc 要到 /usr/share/man 底下時,可以寫成: cd ../man
絕對路徑:路徑從根寫起,例如:/usr/local
1.文件與目錄管理常用命令
ls / cd / cp / mv /pwd /rm / rmdir / chgrp /chown /chmod / find / ln / mkdir / whereis / which / file / touch / locate / dd / updatedb / rename
接下來我將總結這些命令的常用選項
1.1 ls 用來顯示目標列表,在Linux中是使用率較高的命令。
-a:顯示所有檔案及目錄(ls內定將檔案名或目錄名稱為“.”的視為影藏,不
會列出);
-A:顯示除影藏文件“.”和“..”以外的所有文件列表;
-C:多列顯示輸出結果。這是默認選項;
-l:與“-C”選項功能相反,所有輸出信息用單列格式輸出,不輸出為多列;
-c:與“-lt”選項連用時,按照文件狀態時間排序輸出目錄內容,排序的依據
是文件的索引節點中的ctime字段。與“-l”選項連用時,則排序的一句是文件的狀
態改變時間;
-d:僅顯示目錄名,而不顯示目錄下的內容列表。顯示符號鏈接文件本身,而
不顯示其所指向的目錄列表;
-i:顯示文件索引節點號(inode)。一個索引節點代表一個文件; --file-
type:與“
-F”選項的功能相同,但是不顯示“*”;
-k:以KB(千字節)為單位顯示文件大小;
-l:以長格式顯示目錄下的內容列表。輸出的信息從左到右依次包括文件
名,文件類型、權限模式、硬連接數、所有者、組、文件大小和文件的最后修
改時間等;
-m:用“,”號區隔每個文件和目錄的名稱;水平輸出文件列表;
-r:以文件名反序排列并輸出目錄內容列表;
-s:顯示文件和目錄的大小,以區塊為單位;
-t:用文件和目錄的更改時間排序;
-R:遞歸處理,將指定目錄下的所有文件及子目錄一并處理;
--full-time:列出完整的日期與時間;
--color[=WHEN]:使用不同的顏色高亮顯示不同類型的。
-F:在每個輸出項后追加文件的類型標識符,可用于按照特殊字符對文件進
行分類
具體含義:“*”表示具有可執行權限的普通文件,“/”表示目錄,“@”表示符
號鏈接,“|”表示命令管道FIFO,“=”表示sockets套接字。當文件為普通文件時,
不輸出任何標識符;
1.2 cd 用來切換工作目錄。
cd 進入用戶主目錄;
cd ~ 進入用戶主目錄;
cd - 返回進入此目錄之前所在的目錄;
cd .. 返回上級目錄(若當前目錄為“/“,則執行完后還在“/";".."為上級目錄的意思);
cd ../.. 返回上兩級目錄;
cd !$ 把上個命令的參數作為cd參數使用。
1.3 cp 復制命令
-a:此參數的效果和同時指定"-dpR"參數相同;
-i:(默認選項)覆蓋既有文件之前先詢問用戶;
-f:強行復制文件或目錄,不論目標文件或目錄是否已存在;
-p:保留源文件或目錄的屬性;
-R/r:遞歸處理,將指定目錄下的所有文件與子目錄一并處理;
-l:對源文件建立硬連接,而非復制文件;
-s:對源文件建立符號連接,而非復制文件;
-d:當復制符號連接時,把目標文件或目錄也建立為符號連接,并指向與源文
件或目錄連接的原始文件或目錄;
-u:使用這項參數后只會在源文件的更改時間較目標文件更新時或是名稱相互
對應的目標文件并不存在時,才復制文件;
-b:覆蓋已存在的文件目標前將目標文件備份;
-v:詳細顯示命令執行的操作。
1.4 mv 用來對文件或目錄重新命名,或者將文件從一個目錄移到另一個目錄中。
-i:(默認)交互式操作,覆蓋前先行詢問用戶,如果源文件與目標文件或目標
目錄中的文件同名,則詢問用戶是否覆蓋目標文件。用戶輸入”y”,表示將覆蓋目標
文件;輸入”n”,表示取消對源文件的移動。這樣可以避免誤將文件覆蓋。
-b:當文件存在時,覆蓋前,為其創建一個備份;
-f:若目標文件或目錄與現有的文件或目錄重復,則直接覆蓋現有的文件或目
錄;
-u:當源文件比目標文件新或者目標文件不存在時,才執行移動操作。
1.5 rm 可以刪除一個目錄中的一個或多個文件或目錄,也可以將某個目錄
及其下屬的所有文件及其子目錄均刪除掉。對于鏈接文件,只是刪除整個鏈接
文件,而原有文件保持不變。
-d:直接把欲刪除的目錄的硬連接數據刪除成0,刪除該目錄;
-f:強制刪除文件或目錄;
-i:刪除已有文件或目錄之前先詢問用戶;
-r或-R:遞歸處理,將指定目錄下的所有文件與子目錄一并處理;
-v:顯示指令的詳細執行過程。
1.6 chgrp 用來改變文件或目錄所屬的用戶組。該命令用來改變指定文件所
屬的用戶組。其中,組名可以是用戶組的id,也可以是用戶組的組名。文件名
可以 是由空格分開的要改變屬組的文件列表,也可以是由通配符描述的文件集
合。如果用戶不是該文件的文件主或超級用戶(root),則不能改變該文件的
組。
-R或——recursive:遞歸處理,將指令目錄下的所有文件及子目錄一并處
理;
-f或--quiet或——silent:不顯示錯誤信息;
-h或--no-dereference:只對符號連接的文件作修改,而不是該其他任何相關
文件;
-v或——verbose:顯示指令執行過程;
--reference=<參考文件或目錄>:把指定文件或目錄的所屬群組全部設成和參
考文件或目錄的所屬群組相同;
1.7 chown 改變某個文件或目錄的所有者和所屬的組,該命令可以向某個
用戶授權,使該用戶變成指定文件的所有者或者改變文件所屬的組。用戶組可
以是組名或組id。文件名可以使由空格分開的文件列表,在文件名中可以包含
通配符。
-f或--quite或——silent:不顯示錯誤信息;
-h或--no-dereference:只對符號連接的文件作修改,而不更改其他任何相關
文件;
-R或——recursive:遞歸處理,將指定目錄下的所有文件及子目錄一并處理;
-v或——version:顯示指令執行過程;
--dereference:效果和“-h”參數相同;
--reference=<參考文件或目錄>:把指定文件或目錄的擁有者與所屬群組全
部設成和參考文件或目錄的擁有者與所屬群組相同;
1.8 chmod 用來變更文件或目錄的權限。在UNIX系統家族里,文件或目錄
權限的控制分別以讀取、寫入、執行3種一般權限來區分,另有3種特殊權限可
供運用。用戶可以使用chmod指令去變更文件與目錄的權限,設置方式采用文
字或數字代號皆可。符號連接的權限無法變更,如果用戶對符號連接修改權
限,其改變會作用在被連接的原始文件。
權限范圍的表示法如下:
u User,即文件或目錄的擁有者;
g Group,即文件或目錄的所屬群組;
o Other,除了文件或目錄擁有者或所屬群組之外,其他用戶皆屬于這個范
圍;
a All,即全部的用戶,包含擁有者,所屬群組以及其他用戶;
r 讀取權限,數字代號為“4”;
w 寫入權限,數字代號為“2”;
x 執行或切換權限,數字代號為“1”;
- 不具任何權限,數字代號為“0”;
s 特殊功能說明:變更文件或目錄的權限。
-f或--quiet或——silent:不顯示錯誤信息;
-R或——recursive:遞歸處理,將指令目錄下的所有文件及子目錄一并處理;
-v或——verbose:顯示指令執行過程;
--reference=<參考文件或目錄>:把指定文件或目錄的所屬群組全部設成和
參考文件或目錄的所屬群組相同;
<權限范圍>+<權限設置>:開啟權限范圍的文件或目錄的該選項權限設置;
<權限范圍>-<權限設置>:關閉權限范圍的文件或目錄的該選項權限設置;
<權限范圍>=<權限設置>:指定權限范圍的文件或目錄的該選項權限設置;
1.9 mkdir 建立目錄/文件夾
-m<目錄屬性> 設置目錄屬性
-p 建立父目錄,確定目錄是否存在,不存在則建立
-parenls 建立父目錄
-v 顯示詳細的處理信息
1.10 whereis 查找文件/查看命令路徑
-b 定位可執行文件。
-m 定位幫助文件。
-s 定位源代碼文件。
-u 搜索默認路徑下除可執行文件、源代碼文件、幫助文件以外的其它文件。
-B 指定搜索可執行文件的路徑。
-M 指定搜索幫助文件的路徑。
-S 指定搜索源代碼文件的路徑。
-f 只顯示文件的真實名稱
1.11 file - 確定文件類型
-b 不輸出文件名 (簡要模式)
-z 試圖查看壓縮文件內部信息.
-L (在支持符號鏈接的系統上)選項顯示符號鏈接文件的原文件, 就像 ls(1) 命令的like-named 選項.
1.12 touch 用來更新文件或目錄的時間,不存在的文件將會被創建為空文件,除非使用-c 或-h 選項。
如果文件名為"-"則特殊處理,更改與標準輸出相關的文件的訪問時間。
長選項必須使用的參數對于短選項時也是必需使用的。
-a 只更改訪問時間
-m 只更改修改時間
-c, --no-create 不創建任何文件
-d, --date=字符串 使用指定字符串表示時間替代當前時間
-r, --reference=文件 使用指定文件的時間屬性替代當前時間
-t STAMP 使用[[CC]YY]MMDDhhmm[.ss] 格式的時間替代當--time=WORD 使用WORD 指定的時間:access、atime、use 都等于 -a選項的效果,而modify、mtime 等于-m 選項的效果
1.13 rename 用于 對文件進行命名管理,可進行批量命名并支持正則表達式, rename命令存在兩個版本用法上有所區別 一個是 C語言版本支持通配符,另一個是 Perl版本.支持正則表達式
-n 操作預覽,在不更改文件名稱情況下,顯示執行后的結果
-f 強制執行
【常用通配符說明】
? 表示一個任意字符
* 表示一個或一串任意字符
-------------------------------------------------
【常用正則表達式符號說明】
^ 匹配輸入的開始位置
$ 匹配輸入的結尾
. 匹配除換行符外的任意字符
+ 匹配前一個字符一次或多次 例如,"zo+"可以匹配"zoo",但不匹配"z"
[a-z] 表示某個范圍內的字符,例如,"[a-z]"匹配"a"與"z"之間的任何一個小寫字母字符。
[^m-z] 否定的字符區間。與不在指定區間內的字符匹配。
1.14 updatedb命令用來創建或更新slocate命令所必需的數據庫文件。updatedb命令的執行過程較長,因為在執行時它會遍歷整個系統的目錄樹,并將所有的文件信息寫入slocate數據庫文件中。 補充說明:slocate本身具有一個數據庫,里面存放了系統中文件與目錄的相關信息。
-o<文件>:忽略默認的數據庫文件,使用指定的slocate數據庫文件;
-U<目錄>:更新指定目錄的slocate數據庫; -v:顯示執行的詳細過程。
1.15 dd轉換和拷貝文件
當進行非強制的轉換的時候,使用指定的輸入和輸出塊大小拷貝文件 (默認是從標準輸入到標準輸出。)
它每次從輸入讀取指定大小的一個塊(默認是512字節)。 如果使用 bs=bytes 選項,并且沒有轉換,除了指定 sync, noerror, 或 notrunc 之外, 那么dd將把全部讀到的數據(可以比請求讀的少) 寫到獨立的輸出塊去。 這個輸出塊的長度和讀到的數據 完全一樣,除非指定使用 sync(同步) 轉換,那樣的話,數據結尾處將追加NUL字符(或空格,見下)。
其他情況下,輸入的時候每次讀一個塊,然后處理,并將 輸出結果收集起來,最后寫到指定大小的數據塊中去。最 終的輸出塊可能會比指定的大小短一些。
if=file 從 file 中讀而不是標準輸入。
of=file 寫到 file 里去而不是標準輸出。除非指定 conv=notrunc ,否則, dd 將把 file 截為O字節(或由 seek= 選項指定的大小)
ibs=bytes 一次讀 bytes 字節。默認是512。
obs=bytes 一次寫 bytes 字節。默認是512。
bs=bytes 一次讀和寫 bytes 字節。這將覆蓋 ibs 和 obs 設定的值(并且,設定 bs 不等于同時將 ibs 和 obs 設為同一個值,至少在 只使用 sync, noerror 或 notrunc 轉換時是這樣的。因為bs規定,每個輸入塊都應作為單獨 的數據塊拷貝到輸出,而不把較短的塊組合到一起)。
count=blocks 只拷貝輸入文件的前 blocks 塊(每塊的大小為 ibs-byte 字節),而不是全部內容,直到文件末尾。
conv=轉換[,轉換]... 將文件按 轉換 參數指定的方式轉換(在lq,rq兩邊沒有空格)。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。