Linux文件管理和Bash特性

一、Linux基本文件管理命令

主要介紹cp、mv、rm命令的基本用法以及使用示例

  • cp命令

cp命令用來將一個或多個源文件或者目錄復制到指定的目的文件或目錄

cp (選項) (參數)
常用選項:
-a:此參數的效果和同時指定"-dpR"參數相同,用于實現歸檔; 
-d:復制符號鏈接文件本身,而非其指向的源文件; 
-f:強行復制文件或目錄,不論目標文件或目錄是否已存在;
-i:覆蓋既有文件之前先詢問用戶;
-l:對源文件建立硬連接,而非復制文件;
-p:保留源文件或目錄的屬性;
-R/r:遞歸處理,將指定目錄下的所有文件與子目錄一并處理;
-s:對源文件建立符號連接,而非復制文件;
-S:在備份文件時,用指定的后綴“SUFFIX”代替文件的默認后綴;
-b:覆蓋已存在的文件目標前將目標文件備份; 
-v:詳細顯示命令執行的操作。

[root@Node1 桌面]# cp -r /var/log /var/www  /tmp/test/
  • mv命令

mv命令用來對文件或目錄重新命名,或者將文件從一個目錄移到另一個目錄中。

mv(選項)(參數)
選項
-b:當文件存在時,覆蓋前,為其創建一個備份;
-f:若目標文件或目錄與現有的文件或目錄重復,則直接覆蓋現有的文件或目錄;
-i:交互式操作,覆蓋前先行詢問用戶;
-u:當源文件比目標文件新或者目標文件不存在時,才執行移動操作。

[root@Node1 桌面]# mv ex3 new1
  • rm命令

rm命令可以刪除一個目錄中的一個或多個文件或目錄,也可以將某個目錄及其下屬的所有文件及其子目錄均刪除掉。

rm (選項)(參數)
選項
-f:強制刪除文件或目錄;
-i:刪除已有文件或目錄之前先詢問用戶;
-r或-R:遞歸處理,將指定目錄下的所有文件與子目錄一并處理;
-v:顯示指令的詳細執行過程。
注意:使用rm命令要格外小心。因為一旦刪除了一個文件,就無法再恢復它。所以,在刪除文件之前,最好再看一下文件的內容,確定是否真要刪除。

二、bash工作的基礎特性

(1)命令執行返回值

在 Linux 下,所有的程序在結束時,都會返回一個數字值,這個值叫做返回值,或者稱為錯誤號 ( Error Number )。

  • 命令執行的狀態結果:

    bash通過狀態返回值來輸出此結果:

    成功:0

    失?。?-255

  • 命令執行完成之后,其狀態返回值保存于bash的特殊變量$?中;

(2)命令行展開

命令行展開特性可以一步完成需要分開成多步完成的操作

~:自動展開為用戶的家目錄,或指定的用戶的家目錄;

{}:可承載一個以逗號分隔的路徑列表,并能夠將其展開為多個路徑;

例如:/tmp/{a,b} 相當于 /tmp/a /tmp/b

三、命令行展開的兩個練習

(1)創建/tmp目錄下的:a_c, a_d, b_c, b_d

[root@Node1 tmp]# mkdir -v /tmp/{a,b}_{c,d}
mkdir: 已創建目錄 "/tmp/a_c"
mkdir: 已創建目錄 "/tmp/a_d"
mkdir: 已創建目錄 "/tmp/b_c"
mkdir: 已創建目錄 "/tmp/b_d"

(2)創建/tmp/mylinux目錄下的:

├── bin
├── boot
│   └── grub
├── dev
├── etc
│   ├── rc.d
│   │   └── init.d
│   └── sysconfig
│       └── network_scripts
├── lib
│   └── modules
├── lib64
├── proc
├── sbin
├── sys
├── tmp
├── usr
│   └── local
│       ├── bin
│       └── sbin
└── var
    ├── lock
    ├── log
    └── run

[root@Node1 tmp]# mkdir -pv /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network_scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}
[root@Node1 tmp]# tree /tmp/mylinux/
/tmp/mylinux/
├── bin
├── boot
│   └── grub
├── dev
├── etc
│   ├── rc.d
│   │   └── init.d
│   └── sysconfig
│       └── network_scripts
├── lib
│   └── modules
├── lib64
├── proc
├── sbin
├── sys
├── tmp
├── usr
│   └── local
│       ├── bin
│       └── sbin
└── var
    ├── lock
    ├── log
    └── run
24 directories, 0 files

四、文件元數據的查看以及修改

元數據(Metadata),又稱中介數據,主要是描述數據屬性(property)的信息,用來支持如指示存儲位置、歷史數據、資源查找、文件記錄等功能

  • 元數據定義:

    • 元數據就是數據的數據
    • 元數據算是一種電子式目錄,為了達到編制目錄的目的,必須在描述并收藏數據的內容或特色,進而達成協助數據檢索的目的
    • 任何文件系統中數據分為數據和元數據。數據是指普通文件中的實際數據,而元數據指用來描述一個文件的特征的系統數據,諸如訪問權限、文件擁有者以及文件數據塊的分布信息(inode..)等。用戶需要操作一個文件必須首先得到它的元數據,才能定位到文件的位置并且得到文件的內容或相關屬性。
  • 查看文件的元數據的命令:stat


[root@Node1 ~]# stat 1.sh 
  File: "1.sh"                                                     #文件名
  Size: 139         Blocks: 8        IO Block: 4096   普通文件      #文件類型
Device: fd00h/64768d    Inode: 813855      Links: 1
Access: (0777/-rwxrwxrwx)  Uid: (  0/  root)  Gid: (  0/  root)    #文件權限以及所有者
Access: 2017-07-08 23:35:54.694489522 +0800                        #訪問或執行時間
Modify: 2017-07-08 23:35:52.973490408 +0800                        #修改文件內容時間
Change: 2017-07-08 23:35:52.974490371 +0800                        #修改文件內容、更改所有者及權限時間
  • 修改文件時間戳命令:touch

touch命令有兩個功能:一是用于更新已存在文件的時間戳信息;二是用來創建新的空文件。

touch(選項)(參數)
-a:或--time=atime或--time=access或--time=use 只更改access time;
-c:或--no-create 不建立任何文件;
-m:或--time=mtime或--time=modify 只更該modify time;
-r:<參考文件或目錄> 把指定文件或目錄的日期時間,統統設成和參考文件或目錄的日期時間相同;
-t:<日期時間> 使用指定的日期時間,[[CC]YY]MMDDhhmm[.ss];

[root@Node1 ~]# touch -t 200001012233.44 1.sh                     #將1.sh時間戳修改為指定時間
[root@Node1 ~]# stat 1.sh                                         #驗證時間戳是否修改成功
  File: "1.sh"
  Size: 139         Blocks: 8        IO Block: 4096   普通文件
Device: fd00h/64768d    Inode: 813855      Links: 1
Access: (0777/-rwxrwxrwx)  Uid: (  0/  root)  Gid: (  0/  root)
Access: 2000-01-01 22:33:44.000000000 +0800
Modify: 2000-01-01 22:33:44.000000000 +0800
Change: 2017-07-09 16:13:35.909026238 +0800


原創文章,作者:N27_what,如若轉載,請注明出處:http://www.www58058.com/79554

(0)
N27_whatN27_what
上一篇 2017-07-09 15:29
下一篇 2017-07-09 16:29

相關推薦

  • OpenSSL

    加密和解密技術 本章內容: 安全機制 對稱加密 不對稱加密 散列算法 PKI和CA 相關知識: 1)傳輸層協議:        TCP(面向連接),UDP(面向無連接),SCTP(流控協議) 2)port(端口):傳輸層協議都會提供端口,        端口(port)是標記進程…

    Linux干貨 2016-09-29
  • Net25-第10周作業

    1、請詳細描述CentOS系統的啟動流程(詳細到每個過程系統做了哪些事情) Centos系統啟動過程分內核空間啟動和用戶空間啟動: 內核空間啟動流程: POST: post加點自檢,檢測計算機基本5大件是否完好,計算機可被正常點亮。 BootSequence: 位于ROM上的BIOS的BootSequence來選擇啟動順序 Bootloader: 決定啟動順…

    Linux干貨 2017-03-15
  • Linux的文本處理工具及grep正則表達式的使用

    文本處理工具及grep正則表達式的使用 本章節學習的內容: 1、各種文本工具來查看、分析、統計文本文件 2、grep正則表達式 3、擴展正則表達式 一、抽取文本的工具: 1、按文件內容:less和cat 2、按文件截?。篽ead和tail 3、按列抽?。篶ut 4、按關鍵字抽取:grep 二、文件查看命令:cat, tac,rev 1、命令cat: (1)文…

    Linux干貨 2016-08-05
  • 高可用keepalived+haproxy實現動靜分離

    高可用keepalived+haproxy: 實驗環境: clientIP為:172.18.254.149 VIRROUTEIP為:172.18.61.5 keepalived+haproxy機器1IP為172.18.61.1 keepalived+haproxy機器2IP為172.18.61.2 server1IP為172.18.61.3 server2I…

    2017-05-17
  • linux的一些簡單的命令與操作

    1生產環境發現一臺服務器系統時間產生偏差,造成服務異常,請幫忙校正。 首先通過hwclock,clock:顯示硬件時間,然后通過hwclock –s來以硬件時間為準。校正系統時間。 2生產有一個數據同步腳本需要執行很長時間,怎樣做到無人值守,在管理工具退出的情況下,腳本依然能正常運行。 首先看看系統里面按沒安裝screen,沒的話要安裝。 安裝:首先先把光盤…

    Linux干貨 2016-10-19
  • 用一條命令’pwd’判斷并證明系統命令的執行順序。

    一、命令分類        在Linux系統中命令分為兩類:            1.內部命令:shell buildin 每次啟動系統都會重新加載入內存。        2.外部命令:即某目錄下的…

    Linux干貨 2017-09-03
欧美性久久久久