第二周作業

linux 文件管理命令 rm、mv、cp

  • rm

rm命令:remove

rm [OPTION]… FILE…

常用選項:

-i:interactive (默認rm是‘rm -i’的別名)

-f:force

-r: recursive

        -v:顯示指令的詳細過程

刪除目錄:rm -rf /PATH/TO/DIR

危險操作:rm -rf /*

注意:所有不用的文件建議不要直接刪除,而是移動至某個專用目錄;(模擬回收站)

[root@localhost ~]# ls
123  123.txt  anaconda-ks.cfg  test  useradd1.sh
[root@localhost ~]# rm -fv 123.txt
removed ‘123.txt’
[root@localhost ~]#
  • mv

mv命令:剪切、改名

move (mv在同一個硬盤分區上操作是inode號是不變的,無論文件多大都很快,是因為只是修改了文件對應的指針??绶謪^是執行復制操作,所以很慢)

   mv [OPTION]… [-T] SOURCE DEST

   mv [OPTION]… SOURCE… DIRECTORY

   mv [OPTION]… -t DIRECTORY SOURCE..    

   常用選項:

    -i:交互式;

    -f:force

[root@localhost test]# ls
123.txt
[root@localhost test]# mv 123.txt 1234.txt
[root@localhost test]# ls
1234.txt
[root@localhost test]# mv 1234.txt ..
[root@localhost test]# ls ../ | grep 1234.txt
1234.txt
  • cp

cp命令:復制單個或多個文件或者目錄復制到指定目標文件或者目錄

源文件;目標文件;

   單源復制:cp [OPTION]… [-T] SOURCE DEST

   多源復制:cp [OPTION]… SOURCE… DIRECT

    cp [OPTION]… -t DIRECTORY SOU

    單源復制:cp [OPTION]… [-T] SOURCE DES

    如果DEST不存在:則事先創建此文件,并

    如果DEST存在:

    如果DEST是非目錄文件:則覆蓋目標

    如果DEST是目錄文件:則先在DEST目

    多源復制:cp [OPTION]… SOURCE… DIREC

     cp [OPTION]… -t DIRECTORY SO

    如果DEST不存在:錯誤;

    如果DEST存在:

    如果DEST是非目錄文件:錯誤;

    如果DEST是目錄文件:分別復制每個

    常用選項:

    -i:交互式復制,即覆蓋之前提醒用戶確

    -f:強制覆蓋目標文件;

    -p:復制是保留文件的元數據信息

    -r, -R:遞歸復制目錄;

    -d:復制符號鏈接文件本身,而非其指向

    -a:-dR –preserve=all, archive,用

    –preserv=

    mode:權限

    ownership:屬主和屬組

    timestamps: 時間戳

    context:安全標簽

    xattr:擴展屬性

    links:符號鏈接

    all:上述所有屬性

[root@localhost ~]# cp -v file1 file2 file3 test/
‘file1’ -> ‘test/file1’
‘file2’ -> ‘test/file2’
‘file3’ -> ‘test/file3’
[root@localhost ~]# cp -rv ~/test ~/test1
‘/root/test’ -> ‘/root/test1/test’
‘/root/test/1234.txt’ -> ‘/root/test1/test/1234.txt’
‘/root/test/test1’ -> ‘/root/test1/test/test1’
‘/root/test/test1/1234.txt’ -> ‘/root/test1/test/test1/1234.txt’
‘/root/test/file1’ -> ‘/root/test1/test/file1’
‘/root/test/file2’ -> ‘/root/test1/test/file2’
‘/root/test/file3’ -> ‘/root/test1/test/file3

bash工作特性

  • 命令執行結果狀態返回值

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

成功:0

失?。?-255

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

[root@localhost ~]# ls 
file1  file2  file3
[root@localhost ~]# echo $?
0
[root@localhost ~]# ls file4
ls: cannot access file4: No such file or directory
[root@localhost ~]# echo $?
2
  • 命令展開

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

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

  • 命令展開演示

[root@localhost ~]# mkdir /tmp/{a,b}{_c,_d}
[root@localhost ~]# ls /tmp/
a_c  a_d  b_c  b_d
[root@localhost ~]# mkdir -p /tmp/mylinux/{{bin,dev,lib64,proc,sbin,sys,tmp},
{boot/grub,lib/modules,var/{lock,log,run},usr/local/{bin,sbin},etc/{rc.d/init.d,sysconfig/network-scripts}}}
[root@localhost ~]# 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

文件元數據信息

文件元數據信息包括:

文件名稱、屬主屬組、文件訪問權限、uid、gid、三個時間戳(centos7是四個)、inode號等等

訪問時間access time:讀一次這個文件的內容,這個時間就會更新。比如對這個文件運用 more、cat等命令。ls、stat命令都不會修改文件的訪問時間。

修改時間modify time:修改時間是文件內容最后一次被修改時間。比如:vi后保存文件。ls -l列出的時間就是這個時間。

狀態改變時間change time:是該文件的i節點最后一次被修改的時間,通過chmod、chown命令修改一次文件屬性,這個時間就會更新。

查看命令stat filename

[root@localhost ~]# stat file1
  File: ‘file1’
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d	Inode: 83233005    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2016-11-24 13:29:58.553193471 -0500
Modify: 2016-11-24 13:29:29.081193305 -0500
Change: 2016-11-24 13:29:29.081193305 -0500

修改文件時間戳:touch [option] filename

touch命令:

touch – change file timestamps

touch [OPTION]… FILE…

-c: 指定的文件路徑不存在時不予創建;

-a: 僅修改access time;

-m:僅修改modify time;

-t 指定時間:[[CC]YY]MMDDhhmm[.ss]

[root@localhost ~]# touch -a file1   ##修改文件的訪問時間
[root@localhost ~]# stat file1
  File: ‘file1’
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d	Inode: 83233005    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2016-11-24 14:44:08.509218528 -0500  ##該時間較之前有更新
Modify: 2016-11-24 13:29:29.081193305 -0500
Change: 2016-11-24 14:44:08.509218528 -0500
 Birth: -
[root@localhost ~]# touch -m file1       ##修改文件的編輯時間
[root@localhost ~]# stat file1
  File: ‘file1’
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d	Inode: 83233005    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2016-11-24 14:44:08.509218528 -0500
Modify: 2016-11-24 14:44:33.556218669 -0500  ##該時間較之前有更新
Change: 2016-11-24 14:44:33.556218669 -0500
 Birth: -
[root@localhost ~]# touch -t 201612062130.30 file1    ##指定文件的訪問時間和修改時間
[root@localhost ~]# stat file1
  File: ‘file1’
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d	Inode: 83233005    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2016-12-06 21:30:30.000000000 -0500
Modify: 2016-12-06 21:30:30.000000000 -0500
Change: 2016-11-24 14:47:16.871219588 -0500
 Birth: -

文件別名以及引用命令結果

alias命令

alias NAME='COMMAND' 僅對當前shell進程有效

可以加進~/.bashrc配置文件中

[root@director ~]# alias network='service network restart'
[root@director ~]# network
正在關閉接口 eth0:                                        [確定]
正在關閉接口 eth1:                                        [確定]
關閉環回接口:                                             [確定]
彈出環回接口:                                             [確定]
彈出界面 eth0: 
正在決定 eth0 的 IP 信息...完成。
                                                           [確定]
彈出界面 eth1: Determining if ip address 10.10.10.1 is already in use for device eth1...
                                                           [確定]

引用命令的執行結果:

使用$()或者“

rootuid=`id -u root` 或者 rootuid=$(id -u root)

練習

1、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間出現一個數字(可以有其他字符)的文件或目錄

ls -d /var/l*[0-9]*[[:lower:]]

2、顯示/etc目錄下,以任意一位數字開頭,且以非數字結尾的文件或目錄;

ls -d /etc/[0-9]*[^0-9]

3、顯示/etc目錄下,以非字母開頭,后面跟一個字母及其它任意長度任意字符的文件或目錄;

ls -d /etc/[^[:alpha:]][[:alpha:]]*

4、在/tmp目錄下創建以tfile開頭,后跟當前日期或時間的文件,文件名形如:tfile-2016-05-27-9-32-22。

touch /tmp/tfile-$(date +%F-%H-%M-%S)

5、復制/etc目錄下,所有以p開頭,以非數字結尾的文件或目錄至/tmp/mytest1目錄;

cp -a /etc/p*[^0-9] /tmp/mytest1

6、復制/etc目錄下,所有以.d結尾的文件或目錄至/tmp/mytest2目錄下;

cp -a /etc/*.d /tmp/mytest2

7、復制/etc目錄下,所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄下;

find /etc -name [lnm]*.conf -a -type f -exec cp -a {} /tmp/mytest3 \;

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

(0)
N25_NvaN25_Nva
上一篇 2016-12-08 21:18
下一篇 2016-12-09 10:52

相關推薦

  • 網絡基礎

    網絡小白一個,針對網絡的基礎知識無從下手,因此本文引用了鳥哥私房菜中的眾多概念性知識,在此謝過,本文主要從OSI七層協議,TCP協議和一些網絡中專業詞匯進行解析,并通過子網掩碼的劃分,網絡接口的配置、路由配置等實例來加深對網絡的理解。 一、OSI七層協議:     OSI七層協議的由來:   由于網絡鏈接過程…

    Linux干貨 2016-09-07
  • 第一周博客作業-Linux發行版歷史、哲學思想、FHS、命令格式、幫助等

    All + All – 第一周作業 1.計算機組成及功能 計算機組成 硬件 馮諾依曼體系 CPU 運算器 對數據做算暖蘇運算和邏輯運算 控制器 寄存器等 程序的運行,是CPU通過調用硬盤中的程序至內存中執行來實現的 存儲器 內存 ROM RAM 外存 硬盤 光盤 輸入設備 鼠標、麥克風等 實現指令和參數的輸入 輸出設備 顯示器、打印機等 實現結果…

    Linux干貨 2017-07-02
  • bash-條件測試

                     條件測試 1.條件測試          ? 判斷某需求是否滿足,…

    Linux干貨 2016-08-12
  • Windows與linux分區的區別:

        對于我們普通人來講,分區就是我們看到的“我的電腦”下面的C盤、D盤、E盤······,每個分區都有自己的區域,無法使用別的分區的空間,這樣可以起到保護分區中文件的作用。其實,這樣很容易理解??墒?,對于linux初學者來講,因為使用習慣了windows,到了linux下面,一下子很難轉換過來。  &nb…

    2017-07-16
  • 35個強大的UI設計教程

    下面是35個非常不錯的UI設計的的教程及效果圖,非常不錯哦。不但教你如何做一些特效,同樣教你如何做UI布局和界面設計。當然,他們風格迥異,也基本上都是Web頁面上的。都非常不錯。希望你喜歡。(點擊下面的圖片可以打開相關的教程) Old Paper Layout Professional Modern Web Layout Photography portfo…

    Linux干貨 2015-04-01

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-12-16 15:43

    贊,寫的比較詳細~~~繼續加油~

欧美性久久久久