課程知識回顧
文件屬性中文件權(quán)限概念: rwx - 權(quán)限賦予用戶(9位) 數(shù)值表示權(quán)限 rwx-w--wx 723
根據(jù)權(quán)限找出相應(yīng)文件數(shù)據(jù):
find /oldboy -type f -perm 666
文件屬性中用戶信息概念: 用戶分類(皇帝 平民 傀儡--不能登陸系統(tǒng)/管理服務(wù)進(jìn)程) 用戶和組關(guān)系
文件屬性中時間信息概念: 時間分類(atime mtime ctime) date
- 根據(jù)時間信息查找文件數(shù)據(jù)
find /oldboy -type f -mtime +7
+7: 7天以前的數(shù)據(jù)信息
7: 正好距離當(dāng)前第7天的數(shù)據(jù)
-7: 7天以內(nèi)的數(shù)據(jù)信息
方法一: 配合xargs命令使用
find /oldboy -type f|xargs rm
find /oldboy -type f|xargs -n1 rm
方法二: 配合反引號命令使用:
rm -f `find /oldboy -type f`
方法三: 配合find命令參數(shù)
find /oldboy -type f -delete
方法四: 配合find命令參數(shù) -exec
find /oldboy -type f -exec rm {} \;
文件屬性--文件索引概念
inode
概念: 用于存儲文件屬性信息/存儲文件指針信息
1個文件使用一個inode
誕生: 創(chuàng)建文件系統(tǒng)(格式化)
查看: df -i
block
概念: 用于存儲文件數(shù)據(jù)信息
1個文件可能有多個block 512字節(jié)
誕生: 創(chuàng)建文件系統(tǒng)(格式化)
查看: df
1個block默認(rèn)512字節(jié) 多個block
block調(diào)節(jié)小一些: 存儲小文件更加有力
存儲大文件. 占用多個block, 讀一個blcok和寫一個block 都會消耗磁盤I/O
企業(yè): 默認(rèn)block大小
block調(diào)節(jié)大一些: 存儲大文件更加有力
企業(yè): 視頻網(wǎng)站. 調(diào)整磁盤block更大
文件屬性--硬鏈接數(shù)
硬鏈接:
概念:
01. inode號碼一致的數(shù)據(jù)成為互為硬鏈接
02. 相當(dāng)于數(shù)據(jù)多個門
創(chuàng)建: ln /oldboy/oldboy.txt /oldboy/oldboy_hard_lind.txt
特點(diǎn):
01. 源文件刪除, 鏈接文件依然生效
02. 硬鏈接創(chuàng)建成功, 不會占用新的inode和block
03. 硬鏈接對目錄不能進(jìn)行處理, 不能創(chuàng)建硬鏈接目錄
04. 默認(rèn)目錄硬鏈接數(shù)為2 默認(rèn)文件硬鏈接數(shù)為1
作用:
01. 硬鏈接文件可以用于數(shù)據(jù)恢復(fù) 防止數(shù)據(jù)誤刪除(無法防止文件誤修改)
完整備份數(shù)據(jù)使用cp進(jìn)行備份
軟連接:
概念:
01. 數(shù)據(jù)信息快捷方式
創(chuàng)建: ln -s /oldboy/oldboy.txt /oldboy/oldboy_hard_lind.txt
特點(diǎn):
01. 源文件刪除, 鏈接文件依然失效
02. 軟鏈接創(chuàng)建成功, 不會占用新的block, 會占用新的inode
03. 軟鏈接對目錄可以進(jìn)行處理, 可以創(chuàng)建軟鏈接目錄
作用:
01. 方便開發(fā)人員調(diào)取系統(tǒng)環(huán)境數(shù)據(jù)
- 面試題:在查看一個目錄時,硬鏈接數(shù)表示什么意思?
# ll -id /etc/
67108929 drwxr-xr-x. 83 root root 8192 Oct 11 2020 /etc/
解:
01. 硬鏈接概念
02. 解釋此題硬鏈接數(shù)為什么是83
在/etc目錄中有81個子目錄
補(bǔ)充: 根據(jù)硬鏈接文件inode號碼恢復(fù)數(shù)據(jù)
find / -type f -inum 3213
系統(tǒng)正則符號概念
1) 系統(tǒng)基礎(chǔ)符號
基礎(chǔ)符號系列:
#:
a 表示注釋信息
b 表示登錄用戶信息 (root用戶登錄 提示符#)
$:
a 表示登錄用戶信息 (普通用戶登錄 提示符$)
b 表示調(diào)取變量信息 $oldboy
c 表示調(diào)取列信息 awk '{print $1}' /oldboy/oldboy.txt
!:
a 表示強(qiáng)制意思 :wq! :q!
b 表示取反操作 find /oldboy -type f ! -path /oldboy/oldboy01*/
c 用于調(diào)取歷史命令 !歷史命令信息
|: 將前一個命令執(zhí)行的結(jié)果,交給后面命令處理
find /oldboy -type f |xargs (忽略別名)rm
- 練習(xí):找出/oldboy下面所有.txt結(jié)尾的文件, 并進(jìn)行壓縮 將壓縮文件保存到/oldboy目錄中
環(huán)境準(zhǔn)備:
mkdir /oldboy
touch /oldboy/oldboy{01..10}.txt
touch /oldboy/oldboy{01..10}.jpg
方法一:
find /oldboy -type f -name "*.txt"|xargs tar zcvf /oldboy/oldboy.tar.gz
方法二:
tar zcvf /oldboy/oldboy.tar.gz `find /oldboy -type f -name "*.txt"`
方法三: find命令 + 用法
[root@oldboyedu oldboy] find /oldboy -type f -name "*.txt" -exec tar zcvf /oldboy/oldboy.tar.gz {} +;
tar: Removing leading `/' from member names
/oldboy/oldboy01.txt
/oldboy/oldboy02.txt
/oldboy/oldboy03.txt
/oldboy/oldboy04.txt
/oldboy/oldboy05.txt
/oldboy/oldboy06.txt
/oldboy/oldboy07.txt
/oldboy/oldboy08.txt
/oldboy/oldboy09.txt
/oldboy/oldboy10.txt
'方法四:
tar -zvcf /oldboy/oldboy.tar.gz --exclude=*.jpg /oldboy/
方法五:
ll /oldboy/|grep -o 'oldboy.*.txt$'|xargs tar zcvf /oldboy/oldboy.tar.gz
ls /oldboy/*.txt|xargs tar zcvf /oldboy/oldboy.tar.gz
'' 單引號: 所見即所得
"" 雙引號: 會將部分符號信息做解析處理 $ `` $()
沒引號: 和雙引號功能類似 識別序列信息
`` 反引號: 等價于$() 將命令執(zhí)行的結(jié)果交給外面的命令處理
~ : 快速切換到用戶家目錄 cd ~/cd
- : 快速切換到上一次所在路徑 cd -/cd $OLDPWD
. : 切換到當(dāng)前所在路徑 cd .
.. : 切換到一級所在路徑 cd .. / cd ../../
1>/> : 標(biāo)準(zhǔn)輸出重定向
1>>/>> : 標(biāo)準(zhǔn)輸出追加重定向
2> : 錯誤輸出重定向
2>> : 錯誤輸出追加重定向
錯誤和正確信息統(tǒng)一放置在一個文件:
echo oldboy >>/oldboy/ok.log 2>&1
echo oldboy &>>/oldboy/ok.log
< : 標(biāo)準(zhǔn)輸入重定向
tr 'a-z' 'A-Z' </oldboy/oldboy.txt
xargs -n2 </oldboy/oldboy.txt
<< : 標(biāo)準(zhǔn)輸入追加重定向
cat >>/oldboy.txt<<EOF
&&: 表示前一個命令執(zhí)行成功,再執(zhí)行后面命令
mkdir /oldboy && touch /oldboy/oldboy01.txt
||: 表示前一個命令執(zhí)行失敗,在執(zhí)行后面命令
rmx /oldboy || touch /oldboy/oldboy02.txt
[root@oldboyedu ~] echo oldboy &>/tmp/ok.log && echo ok || echo failed
ok
[root@oldboyedu ~] ech oldboy &>/tmp/ok.log && echo ok || echo failed
failed