第二周作業(yè)

總結(jié)cp、mv命令的用法(要求列出源及目標(biāo)各種情況的表格)

cp 命令

該命令用于復(fù)制文件。

基本用法:

cp source_fileanme target_dir

# 復(fù)制之后重命名
[19:56:44 main@centos8-huasio:~ $] #38 cp /home/main/file.log /data/file.log

# 復(fù)制到指定目錄,但是不重命名
[19:56:44 main@centos8-huasio:~ $] #38 cp /home/main/file.log /data/

cp 本質(zhì)上是對目標(biāo)文件的完整復(fù)制成一個新文件,生成新 inode 表記錄,然后在目標(biāo)位置生成目錄項,將數(shù)據(jù)與 inode 關(guān)聯(lián);

  • 分配一個空閑的 INode Number,在 INode 中生成新記錄
  • 在目錄中創(chuàng)建目錄項,將文件名稱與 INode Number 關(guān)聯(lián)
  • 拷貝數(shù)據(jù)生成新的文件

mv 命令

該命令是移動文件。

基本用法:

mv source_filename target_filename

# 移動文件到指定路徑,并且重命名
[19:57:00 main@centos8-huasio:~ $] #39 mv /home/main/file.log /data/file.log

# 移動文件到指定位置,不重命名
[19:57:00 main@centos8-huasio:~ $] #39 mv /home/main/file.log /data/

使用 mv 對移動目錄或者文件的時候,存在兩種情況:

  • 當(dāng)前分區(qū)內(nèi)移動
    • 當(dāng)前分區(qū)移動的情況,使用新名稱在目錄中創(chuàng)建新的目錄項
    • 刪除舊的目錄項
    • INode 記錄以及數(shù)據(jù)不會改變
  • 跨分區(qū)移動
    • 相當(dāng)于 cp 和 rm 的組合使用,舊分區(qū)的 INode 對應(yīng)的記錄會被刪除。
    • 在新的分區(qū)重新分配 INode Number

移動文件看是否跨分區(qū),沒有跨分區(qū)就是只是對目錄項記錄進行更改,以及該換新名稱??绶謪^(qū)那就是整個文件都從舊分區(qū)中刪除,然后在新分區(qū)中創(chuàng)建新的記錄,將數(shù)據(jù)寫入到新分區(qū)的磁盤中。

總結(jié)IO重定向的類別和區(qū)別

內(nèi)存分成兩部分,一份是內(nèi)核,一份是應(yīng)用程序空間,而程序本身也包含兩部分?jǐn)?shù)據(jù):程序指令和數(shù)據(jù)。

那么,程序的數(shù)據(jù)是從何而來的呢?

很明顯,有的數(shù)據(jù)需要用戶輸入給程序,既然這樣就要一種輸入設(shè)備。在 Linux 中,一切都表現(xiàn)為文件,所以輸入輸出也是文件,一種設(shè)備文件。

輸入輸出設(shè)備文件表現(xiàn)形式是一種文件描述符,只要打開任何應(yīng)用程序,系統(tǒng)就會為該應(yīng)用程序分配標(biāo)準(zhǔn)輸入輸出設(shè)備的文件描述符,這是固定的描述符,準(zhǔn)確的說,應(yīng)該是將描述符分配給進程,每個進程都有固定標(biāo)準(zhǔn)輸入輸出文件描述符。除此之外,進程內(nèi)打開的其它文件則隨機分配。

  • 標(biāo)準(zhǔn)輸入(STDIN) 0:默認(rèn)接受來自終端窗口的輸入
  • 標(biāo)準(zhǔn)輸出(STDOUT) 1:默認(rèn)輸出到終端窗口
  • 標(biāo)準(zhǔn)錯誤(STDERR) 2:默認(rèn)輸出到終端窗口

它們有什么區(qū)別嗎?

標(biāo)準(zhǔn)輸出、標(biāo)準(zhǔn)錯誤這兩種設(shè)備是輸出數(shù)據(jù)到指定位置,默認(rèn)是終端窗口。

標(biāo)準(zhǔn)輸入是從外界獲取數(shù)據(jù),默認(rèn)是從終端窗口獲取數(shù)據(jù)。

這三種設(shè)備,一般進程都是指定當(dāng)前終端窗口,我們可以通過特定符號來修改數(shù)據(jù)的輸入源,比如說文件。

  • >:標(biāo)準(zhǔn)輸出,可以將輸出到指定文件
  • 2>:標(biāo)準(zhǔn)錯誤,可以將輸出到指定文件
  • <:標(biāo)準(zhǔn)輸入,可以從文件中獲取數(shù)據(jù)

將 /etc/issue 文件中的內(nèi)容轉(zhuǎn)換為大寫后保存至 /tmp/issue.out 文件中

通過 tr 命令,可以對文件進行簡單的轉(zhuǎn)換、刪除、壓縮功能的處理。

將內(nèi)容轉(zhuǎn)換成大寫。

[20:03:06 main@centos8-huasio:~ $] #40 cat /etc/issue | tr -t '[a-z]' '[A-Z]' >> /tmp/issue.out
[20:31:13 main@centos8-huasio:~ $] #41 cat /tmp/issue.out
\S
KERNEL \R ON AN \M

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容