Linux文件管理_1
在Linux中,全部都是文件,所以文件管理在Linux上格外重要,在我們學習文件管理前,我們先學習幾個關於文件的命令,之後才能更好的學習文件管理。
目錄
pwd命令
cd命令
列出文件內容ls
查看文件狀態stat
創建文件touch
文件通配符
復制命令cp
移動與重命名mv
刪除rm
顯示目錄樹tree
創建文件夾mkdir
刪除文件夾rmdir
查看文件類型file
拓展:rename&&shred
顯示當前工作目錄
每個shell和系統進程都有一個當前的工作的目錄
CWD:current work directory
顯示當前的shell CWD的絕對路徑pwd
打印工作目錄(當前所在目錄)
參數:
-P 顯示真實物理路徑
-L 顯示連接路徑(默認)
改變目錄
格式:cd [option] dir
作用:改變目錄
切換到父目錄:cd ..
切換到當前用戶主目錄:cd
切換至以前的工作目錄:cd –
選項:-P 直接進入原目錄(非鏈接目錄)
相關的環境變量:
PWD:當前目錄文件
OLDPWD:上一次目錄路徑
列出當前目錄的內容或指定目錄
格式:ls [option] [files|dirs]
作用:列出當前目錄的內容或指定目錄
用法:
ls -a 顯示所有文件
ls -A 顯示所有文件,除.、..
ls -l 長列出
ls -R 遞歸
ls -ld 顯示指定目錄的詳細信息。
ls -1 豎顯示
ls -S 按文件大小降序排列
ls -t 按修改時間(mtime)從新到舊排列
ls -ut 按訪問時間(atime) 從新到舊排列
ls -U 按文件存放的先後順序
ls -X 按文件後綴排序
ls -i 顯示文件的inode號
ls -Z 顯示文件的context值
查看文件的狀態
命令:stat
文件:metadata,data
三個時間戳:
access time:訪問時間,atime,讀取文件內容
modify time:修改時間,mtime,改變文件內容(數據)
change time:改變時間,ctime,元數據發生改變
創建空文件和刷新時間
格式:touch [option]… file …
作用:創建空文件和刷新時間
OPTION:
-a 僅改變atime和ctime
-m 僅改變mtime和ctime
-t [[CC]YY]MMDDhhmm[.ss]
指定atime和mtime的時間戳
-c 如果文件不存在,則不予創建
touch filename :
當文件不存在時,則創建一個空文件,名為filename
當文件已存在時,則更新期時間戳
-a 僅更新atime,ctime
-m 僅更新mtime, ctime
touch filename 更新全部時間戳。
文件通配符
在好多時候我們可能需要查找有相同字符,或者有一定規則的名字的文件或目錄,如果我們還是利用手工一點一點的去敲出來,無疑會浪費我們好多時間,此時,我們可以利用通配符來進行文件匹配,可以較少好多我們的時間,快捷,方便,首先我們看看都有那些通配符:
* 匹配零個或多個字符
? 匹配任何單個字符
~ 當前用戶家目錄
~mage 用戶mage家目錄
~+ 當前工作目錄
~- 前一個工作目錄
[0-9] 匹配數字範圍
[a-z]: 字母
[A-Z]: 字母
[wang] 匹配列表中的任何的一個字符
[^wang] 匹配列表中的所有字符以外的字符
還有一種就是預定義的字符類,同樣是作為通配符使用
預定義的字符類: #man 7 glob
[:digit:]: 任意數字, 相當於0-9
[:lower:]: 任意小寫字母
[:upper:]: 任意大寫字母
[:alpha:]: 任意大小寫字母
[:alnum:]: 任意數字或字母
[:blank:]: 水平空白字符
[:space:]: 水平或垂直空白字符
[:punct:]: 標點符號
[:print:]:可打印字符
[:cntrl:]: 控制(非打印)字符
[:graph:]: 圖形字符
[:xdigit:]: 十六進制字符
接下來我們通過一些演示來說明如何使用通配符
1、 顯示/var目錄下所有以l開頭, 以一個小寫字母結尾, 且中間出現至少一位數字的文件或目錄
2、 顯示/etc目錄下以任意一位數字開頭, 且以非數字結尾的文件或目錄
3、 顯示/etc/目錄下以非字母開頭, 後面跟了一個字母及其它任意長度任意字符的文件或目錄
4、 顯示/etc/目錄下所有以rc開頭, 並後面是0-6之間的數字,其它為任意字符的文件或目錄
復制文件和目錄cp
命令:cp
格式:cp[option]...[-T] source dest
cp[option]...source...directory
cp[option]... -t directory source
說明:
cp A B
A是文件:
1.如果目標不存在,新建B,並將A中的數據拷貝到B中
2.如果目標存在,且B是文件,將A中的數據覆蓋到B中
3.如果B是目錄,在B下新建一個與源文件同名的文件並將內容進去
A是目錄:(需要參數 -r)
1.如果B不存在,則創建指定目錄,則創建指定目錄,復制A目錄下文件到B目錄
2.如果B存在:
1.如果B是文件:報錯
2.如果B是目錄:則將包括A目錄一起復制到B
cp A B C D H
如果ABCD是文件:
當 H 是目錄且存在的情況下才能拷貝
如果ABCH是目錄:(必須用 -r)
當 H 是目錄且存在的情況下才能拷貝,將包括ABCD目錄一起復制到H下
cp常用選項:(cp本身是直接復制原文件的,而不是鏈接文件)
-i:prompt before overwrite 覆蓋前提示
-n:do not overwrite an existing file 不覆蓋已存在的文件(也不追加)
-r,-R:copy directories recursively 遞歸拷貝目錄以及文件內容
-a:same as -dR --preserve=all 拷貝全部文件且權限不變
-d:same as --no-dereference --preserve=links
若文件為鏈接文件,則只復制鏈接屬性,不復制源文件本身
-p:連同文件的屬性一起復制過去,而非使用默認屬性(備份常用)
-f:當覆蓋時,如目的文件的缺少寫權限時,強制刪除目的文件,並新建再填充內容。當有-n時,無效
-v:顯示拷貝的過程
移動和重命名文件
格式:mv [OPTION]... A(源)... B(目的)
作用:移動和重命名文件
參數:-i: 交互式(會詢問)
-f: 強制(不詢問)
說明:一般我們會用這個命令進行移動和重命令,如果我們將文件移動到不同的文件,就是移動,如果我們將文件移動到原目錄,就是重命令
刪除操作
格式:rm [OPTION]... FILE...
作用:刪除文件或目錄
參數:-i: 交互式
-f: 強制刪除
-r: 遞歸(可以遞歸刪除文件和目錄)
目錄操作
tree 顯示目錄樹
-d: 只顯示目錄
-L level: 指定顯示的層級數目
-P pattern: 只顯示由指定pattern匹配到的路徑
mkdir 創建目錄
-p: 存在於不報錯, 且可自動創建所需的各目錄
-v: 顯示詳細信息
-m MODE: 創建目錄時直接指定權限
rmdir 刪除空目錄(可以用rm代替)
-p: 遞歸刪除父空目錄
-v: 顯示詳細信息
確定文件內容
格式:file [options] <filename>...
常用選項:
-b 列出文件辨識結果時, 不顯示文件名稱
-f filelist 列出文件filelist中文件名的文件類型
-F 使用指定分隔符號替換輸出文件名後默認的”:”分隔符
-L 查看對應軟鏈接對應文件的文件類型
--help 顯示命令在線幫助
拓展:
rename:批量改名 ‘.txt‘ ‘.doc‘ *.txt
shred 粉碎功能(不做演示)
Linux文件管理_1