Linux文件管理

文件管理

www.pathname.com/fhs
硬盤設備掃描
echo '- - -' > /sys/class/scsi_host/host2/scan
文件系統
文件和目錄被組織成一個單根倒置樹結構
文件系統從根目錄下開始,用"/"表示
根文件系統(rootfs):root filesystem
文件名稱區分大小寫
以.開頭的文件爲隱藏文件
路徑分隔的 /
文件有兩類數據
元數據:metadata
數據:data
文件系統分層結構:LSB Linux Standard Base
FHS:(filesystem Hierarchy Standard)
http://www.pathname.com/fhs
文件名規則
文件名最長255個字節
包括路徑在內文件名稱最長4095個字節
藍色-->目錄 綠色-->可執行文件 紅色-->壓縮文件 淺藍色-->鏈接文件 灰色-->其他文件
除了斜槓和NUL,所有字符都有效。但使用特殊字符的目錄名和文件不推薦使用,有些字符需要用引號來引用它們
標準Linux文件系統(如ext4),文件名稱大小寫敏感。
例如:MAIL, Mail, mail, mAiL
文件系統結構
/boot:引導文件存放目錄,內核文件(vmlinuz)、引導加載器(bootloader,grub)都存放於此目錄
/bin:功所有用戶使用的基本命令,不能關聯至獨立分區,OS啓動即會用到的程序
/sbin:管理類的基本命令,不能關聯至獨立分區,OS啓動即會用到的程序
/lib:啓動時程序依賴的基本共享庫文件以及內核模塊文件(/lib/modules)
/lib64:專用於x86_64系統上的輔助共享庫文件存放位置
/etc:配置文件目錄
/home/USERNAME:普通用戶家目錄
/root:管理員的家目錄
/media:便攜式移動設備掛載點
Linux下的文件類型
-:普通文件
d:目錄文件
b:塊設備
c:字符設備
l:符號鏈接文件
p:管道文件pipe
s:套接字文件socket
CentOS 7目錄變化
/bin 和 /usr/bin
/sbin 和 /usr/sbin
/lib 和 /usr/lib
lib64 和 /usr/lib64
顯示當前工作目錄
每個shell和系統進程都有一個當前的工作目錄
CWD:Current Work Directory
顯示當前shell CWD的絕對路徑
pwd:Printing Working Directory
-P 顯示真實物理路徑
-L 顯示鏈接路徑(默認)
絕對和相對路徑
絕對路徑
以正斜槓開始
完整的文件的位置路徑
可用於任何想指定一個文件名的時候
相對路徑
不以斜線開始
指定相對於當前工作目錄或某目錄的位置
可以作爲一個簡短的形式指定一個文件名
基名:basename
目錄名:dirname

(1)文件管理

回顧

alias 別名
配置文件位置:家目錄下的.bashrc
PS1變量配置文件位置
/etc/profile.d/
查詢幫助
內部命令:help COMMAND
外部命令:man COMMAND
官方文檔
目錄結構
fhs(文件目錄結構標準)
/bin 普通用戶
/sbin 管理員
/boot 引導文件
/etc 關鍵配置文件(類似註冊表)
/lib 庫文件
/lib64 庫文件
/tmp 臨時文件
/usr 安裝系統程序文件
/mnt 掛載點
/media 掛載點
/dev 硬件設備
/dev/sr0 光盤設備
/dev/sda 硬盤設備
/dev/zero 字符設備
字符設備爲順序訪問
/var 可變數據
.log 日誌文件
/home 普通用戶家目錄
/misc 自動掛載目錄
cd /misc/cd
/srv 服務器數據
/proc 虛擬文件夾(映射內存數據)
/sys 硬件信息
echo '- - -' > /sys/class/scsi_host/host2/scan 掃描新加硬盤
/opt 自動掛載相關
/selinux selinux安全策略
文件類型
查看及修改文件類型顯示顏色
/etc/DIR_COLORS
更改目錄
cd 更改目錄
使用絕對或相對路徑
cd /home/zhuang
cd home/zhuang
切換至父目錄
cd ..
切換至當前用戶主目錄
cd
切換至以前的工作目錄
cd -
選項:-P
相關的環境變量:
PWD:當前目錄路徑
OLDPWD:上一次目錄路徑 echo $OLDPWD
列出目錄內容
列出當前目錄的內容或指定目錄
用法:ls [options] [file_or_dirs]
示例:
ls -a 包含隱藏文件
ls -l 顯示額外的信息
ls -R 目錄遞歸通過
ls -ld 目錄和符號鏈接信息
ls -1 文件分行顯示
ls -S 按從大到小排序
ls -t 按mtime排序
ls -u 配合-t選項,顯示並按atime從新到舊排序
ls -U 按目錄存放順序顯示
ls -X 按文件後綴排序
文件通配符

  • 匹配零個或多個字符
    ? 匹配任何單個字符
    ~ 當前用戶家目錄
    ~zhuang 用戶zhuang家目錄
    ~+ 當前工作目錄
    ~- 前一個工作目錄
    [0-9] 匹配數字範圍
    [a-z] 字母(小寫)
    [A-Z] 字母(大寫)
    [zhuang] 匹配列表中的任何的一個字符
    [^zhuang] 匹配列表中的所有字符以外的字符
    預定義的字符類:man 7 glob
    [:digit:] 任意數字,相當於0-9
    [:lower:] 任意小寫字母
    [:upper:] 任意大寫字母
    [:alpha:] 任意大小寫字母
    [:alnum:] 任意數字或字母
    [:blank:] 水平空白字符
    [:space:] 水平或垂直空白字符
    [:punct:] 標點符號
    [:print:] 可打印字符
    [:cntrl:] 控制(非打印)字符
    [:graph:] 圖形字符
    [:xdigit:] 十六進制字符

2.文件管理
創建空文件和刷新時間
touch命令
touch [OPTION]...FILE...
-a 僅改變atime和ctime
-m 僅改變mtime和ctime
-t [[CC]YY]MMDDhhmm[.ss] 指定atime和mtime的時間戳
-c 如果文件不存在,則不予創建
複製文件和目錄cp
cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE...DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
cp SRC DEST
SRC是文件
如果目標不存在:新建DEST,並將SRC中內容填充至DEST中
如果目標存在:
如果DEST是文件:講SRC中的內容覆蓋至DEST中
基於安全,建議cp命令使用-i選項
如果DEST是目錄:在DEST下新建與原文件同名的文件,並將SRC中內容填充至新文件中
cp常用選項
-i:覆蓋前提示 -n:不覆蓋,注意兩者順序
-r,-R:遞歸複製目錄及內部的所有內容
-a:歸檔,相當於-dR --perserv=all
-d:--no-dereference --preserv=links 不復制原文件,只複製鏈接名
--perserv[=ATTR_LIST]
mode:權限
ownership:屬主屬組
timestamp
links
xattr
context
all
-p:等同--perserv=mode,ownership,timestamp
-v:--verbose
-f:--force
-u:--update 只複製源比目標封信文件或目標不存在的文件
--backup=numbered 目標存在,覆蓋前先備份加數字後綴

3.文件管理

移動和重命名文件
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
常用選項:
-i:交互式
-f:強制
刪除
rm [OPTION]... FILE...
常用選項:
-i 交互式
-f 強制刪除
-r 遞歸
--no-preserve-root 刪除/
示例:
rm -rf /
目錄操作
tree 顯示目錄樹
-d:只顯示目錄
-L level:指定顯示的層級數目
-P pattern:只顯示由指定pattern匹配到的路徑
mkdir 創建目錄
-p:存在於不報錯,且可自動創建所需的各目錄
-v:顯示詳細信息
-m MODE:創建目錄時直接指定權限
rmdir 刪除空目錄
-p:遞歸刪除父空目錄
-v:顯示詳細信息
rm -r 遞歸刪除目錄樹
索引節點
inode(index node)表中包含文件系統所有文件列表
一個節點(索引節點)是在一個表項,包含有關文件的信息(元數據),包括:
文件類型,權限,UID,GID
鏈接數(指向這個文件名路徑名稱個數)
該文件的大小和不同的時間戳
指向磁盤上文件的數據塊指針
有關文件的其他數據
目錄
文件引用一個是inode號
人是通過文件名來引用一個文件
一個目錄是目錄下的文件名和文件inode號之間的映射
刪除敏感數據命令
shred -zvu -n # FILENAME
-z:使用隨機數據進行填充
-v:顯示過程
-u:完成填充後刪除
-n #:指定完成#次填充或刪除renwu

4文件管理

rm和inode
rm 命令:
鏈接數遞減,從而釋放的inode號可以被重用
把數據塊放在空閒列表中
刪除目錄項
數據實際上不會馬上被刪除,但當另一個文件使用數據塊時將被覆蓋
mv和inode
如果mv命令的目標和源在相同的文件系統,作爲mv命令
用新的文件名創建對應新的目錄項
刪除舊目錄條目對應的舊的文件名
不影響inode表(出時間戳)或磁盤上的數據位置:沒有數據被移動!
如果目標和源在一個不同的文件系統,mv相當於cp和rm
硬鏈接
創建硬鏈接會增加額外的記錄項以引用文件
對應於同一文件系統上一個物理文件
每個目錄引用相同的inode號
創建時鏈接數遞增
刪除文件時:
rm命令遞減計數的鏈接
文件要存在,至少有一個鏈接數
當鏈接數爲零時,該文件被刪除
不能跨驅動器或分區
語法:
ln FILENAME [LINKNAME]
符號鏈接(軟鏈接)
一個符號鏈接指向另一個文件
ls -l 顯示鏈接的名稱和引用的文件
一個符號鏈接的內容是它引用文件的名稱
可以對目錄進行
可以跨分區
指向的是另一個文件的路徑;其大小爲指向的路徑字符串的長度;不增加或減少目標文件inode的引用計數
語法:
ln -s FILENAME [LINKNAME]
確定文件內容
文件可以包含多種類型的數據
檢查文件的類型,然後確定適當的打開命令或應用程序使用
file [OPTIONS] <FILENAME>...
常用選項:
-b 列出文件表示結果時,不顯示文件名稱
-f filelist 列出文件filelist中文件名的文件類型
-F 使用指定分隔符號替換輸出文件名後默認的":"分隔符
-L 查看對應軟鏈接對應文件的文件類型
--help 顯示命令在線幫助

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章