1. 程式人生 > >【文件管理(硬鏈接與軟連接 ,ls, cp, ....)和標準Io】

【文件管理(硬鏈接與軟連接 ,ls, cp, ....)和標準Io】

linu -a 除了 錯誤輸出 最長 程序 指定 med 包括

文件管理:
(1):文件系統
文件系統從根目錄下開始,用“/”表示
文件名是區分大小寫的
以.開頭的文件為隱藏文件
文件有兩類數據
元數據:metadata
數據:data
(2):文件名規則
文件名最長225個字節
藍色----目錄
綠色----可執行文件
紅色----壓縮文件
淺藍色----鏈接文件
灰色------其他文件
(3):文件系統結構
/boot:引導文件存放目錄
/bin:供所有用戶使用的基本命令
/sbin :管理類基本命令
/etc :配置文件目錄
/home :普通用戶家目錄
/root :管理員夾目錄
media :便攜帶移動設備掛載點
/mnt :臨時文件系統掛載點
/dev :設備文件與特殊文件儲存位置
/opt :第三方應用程序安裝位置
/tmp :臨時文件儲存位置
(4):文件類型
— :普通文件
d :目錄文件
b :塊設備
c : 字符設備
l :符號連接
p :管道文件
s :套結文件
(5):顯示當前工作目錄
pwd
-p 顯示真是路徑
-l 顯示鏈接文件【默認】

絕對和相對路徑
絕對路徑
以正斜杠開始完整的文件的位置路徑

相對路徑
不以斜杠開始指定相對於當前工作目錄或某一個目錄位置

ls參數和用法 【查看】
用法:ls [options] [file_or_dirs]
參數:
ls -a : 包含隱藏文件
ls -l : 顯示額外的信息
ls -ld :目錄和符號鏈接信息
ls -1 :文件分行顯示
ls -S :按從打到小排序
ls-t :按mtime 排序

ls -U :按目錄存放順序顯示
ls -X :按文件後續排序

:ls -a /root【顯示root下所有文件包括隱藏文件】

cp常見選項【拷貝**】
參數:
-i :覆蓋前提示
-r:遞歸復制目錄及內部所有內容
-a :歸檔
-f :強制
-u只復制原比目標更新文件

例:
(1):cp /root/dang.txt /data【拷貝root下的dang.txt文件到/data下】

mv常用選項【移動和重命名】
參數:
-i :交互式
-f 強制
例:
(1):mv /root/dang.txt /data【移動root下的dang.txt文件到/data】
(2):mv /root/dang dang.txt 【把root下dang文件改名為dang.txt】

(3):mv /root/dang.txt /data/dang 【把root下dang.txt改名為dang並移動到/data下】

rm常用選項【刪除】
參數:
-i :交互式
-f :強制刪除
-r :遞歸
例:
(1):rm -rf / 【危險命令 禁止使用】

mkdir 【創建目錄】
-p :可自動創建所需要的個目錄 【遞歸創建】
-v :顯示詳細信息
-m :創建目錄時直接制定權限

例:
(1):mkdir -p data/dri1/dri2【創建data/下dri1/下dri2文件】

rmdir 【刪除空目錄】
例:
(1):rmdir data 【刪除data 這個目錄,只能刪除空目錄】

硬鏈接與軟連接區別:

1.原理上:

硬鏈接(hard link):A是B的硬鏈接(A和B都是文件名),則A的目錄項中的inode節點號與B的目錄項中的inode節點號相同,即一個inode節點對應兩個不同的文件名,兩個文件名指向同一個文件,A和B對文件系統來說是完全平等的。如果刪除了其中一個,對另外一個沒有影響。每增加一個文件名,inode節點上的鏈接數增加一,每刪除一個對應的文件名,inode節點上的鏈接數減一,直到為0,inode節點和對應的數據塊被回收。註:文件和文件名是不同的東西,rm A刪除的只是A這個文件名,而A對應的數據塊(文件)只有在inode節點鏈接數減少為0的時候才會被系統回收。

軟鏈接(soft link):A是B的軟鏈接(A和B都是文件名),A的目錄項中的inode節點號與B的目錄項中的inode節點號不相同,A和B指向的是兩個不同的inode,繼而指向兩塊不同的數據塊。但是A的數據塊中存放的只是B的路徑名(可以根據這個找到B的目錄項)。A和B之間是“主從”關系,如果B被刪除了,A仍然存在(因為兩個是不同的文件),但指向的是一個無效的鏈接。

2.使用限制上:

硬鏈接:
a.不能對目錄創建硬鏈接,原因有幾種,最重要的是:文件系統不能存在鏈接環(目錄創建時的".."除外,這個系統可以識別出來),存在環的後果會導致例如文件遍歷等操作的混亂(du,pwd等命令的運作原理就是基於文件硬鏈接,順便一提,ls -l結果的第二列也是文件的硬鏈接數,即inode節點的鏈接數)

b:不能對不同的文件系統創建硬鏈接,即兩個文件名要在相同的文件系統下。

c:不能對不存在的文件創建硬鏈接,由原理即可知原因。

軟鏈接:
a.可以對目錄創建軟鏈接,遍歷操作會忽略目錄的軟鏈接。

b:可以跨文件系統

c:可以對不存在的文件創建軟鏈接,因為放的只是一個字符串,至於這個字符串是不是對於一個實際的文件,就是另外一回事了

3.命令

硬鏈接:ln 源文件 鏈接名

軟鏈接:ln -s 源文件 鏈接名

標準I/O

(1):標準輸入和輸出
程序:指令+數據
讀入數據 :input
輸出數據 : output
(2):linux 給程序提供三種I/O設備
1:標準輸入 -0默認接受來自鍵盤的輸入
2:標準輸出 -1 默認輸出到在終端窗口
3:標準錯誤 -2 默認輸出到終端窗口

把標準輸出重定向到文件 【>文件將會被覆蓋】
2> 把標準錯誤重定向到文件 【原有基礎內容上,追加內容】
&>把所有輸出重定向到文件 【標準輸出和標準錯誤】
&> 覆蓋重定向
&> 追加重定向
set -C 禁止將內容覆蓋以有文件,但可追加
set +c 允許覆蓋
| file 強制覆蓋

例:標準輸出和錯誤輸出各自定向至不同位置
命令 > /data/data.txt 2> /data/data.txt 【表示: 命令的標準輸出重定向到/data/data.txt這個文件,命令的標準錯誤重定向到/data/data.txt這個文件】
命令 > /data/data.txt 2 >&1 【表示: 命令的標準輸出和標準錯誤全部重定向到/data/data.txt這個文件】

     ***註釋:以上內容僅供參考***

【文件管理(硬鏈接與軟連接 ,ls, cp, ....)和標準Io】