2.3 文件管理類命令

4、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。


1cp命令

(1)cp命令的簡單認識

[root@CentOS7 data]# whatis cp

cp (1)               - copy files and directories

cp (1p)              - copy files

[root@CentOS7 data]# which cp

alias cp='cp -i'

/usr/bin/cp

[root@CentOS7 data]# whereis cp

cp: /usr/bin/cp /usr/share/man/man1/cp.1.gz /usr/share/man/man1p/cp.1p.gz

[root@CentOS7 data]# type cp

cp is aliased to `cp -i'

(2)選項

-i 覆蓋前提示,輸入y 回車。直接回車管不管用?

-n 不覆蓋,注意文件順序

-r/R 遞歸複製目錄及內部的全部內容

-a 歸檔,相當於 -dr --preserv = all

-d --no-dereference --preserv=links 不復制原文件,只複製鏈接名   如果不加-d  複製的是鏈接的文件 (軟鏈接時)

                --preserv[=ATTR_LIST] (preserve保護、維持)

                mode 權限

                ownership 屬主屬組

                timestamp 時間戳

                links 複製符號鏈接本身

                xattr 擴展屬性

                context 安全標籤

                all

-p 等同 --preserv=mode,ownership,timestamp

-v --verbose    explain what is being done  

-f --force 刪除後建立

 if  an  existing  destination  file  cannot  be opened, remove it and try again (this option is ignored when the -n option is also used)

-u --update 只複製源比目標修改時間(Modification Time)更新文件或目標不存在的文件

  • [root@CentOS7 data]# cat 1.log

  • [root@CentOS7 data]# cat > 1.log << EOF

  • > 111

  • > 22

  • > 33

  • > EOF

  • [root@CentOS7 data]# cat 1.log  #剛剛編輯過,mtime較晚。

  • 111

  • 22

  • 33

  • [root@CentOS7 data]# cat aaa.txtl #此文件mtime較早

  • aaa

  • d

  • f

  • g

  • [root@CentOS7 data]# cp aaa.txtl 1.log 

  • cp: overwrite ‘1.log’? n

  • [root@CentOS7 data]# cat 1.log 

  • 111

  • 22

  • 33

  • [root@CentOS7 data]# cp aaa.txtl 1.log -u   

  • [root@CentOS7 data]# cat 1.log   #查看文件的內容並未變化

  • 111

  • 22

  • 33

  • [root@CentOS7 data]# cp 1.log aaa.txtl -u

  • cp: overwrite ‘aaa.txtl’? y

  • [root@CentOS7 data]# cat aaa.txtl  #此文件內容已經被替換

  • 111

  • 22

  • 33

  •  

-b 目標存在,覆蓋前先備份,形式爲filename~

只能備份上一次文件。如果第二次複製不同的文件爲上一次的文件名則還是命名爲 name~

--backup=numbered,t 目標存在,覆蓋前先備份加數字後綴



  • [root@CentOS7 data]# cp /etc/profile profile.bak -b
    cp: overwrite ‘profile.bak’? y
    [root@CentOS7 data]# ll
    total 8
    -rw-r--r-- 1 root root 1819 Nov 12 13:05 profile.bak
    -rw-r--r-- 1 root root 1819 Nov 12 13:04 profile.bak~
    [root@CentOS7 data]# cp --backup=numbered /etc/profile profile.bak
    cp: overwrite ‘profile.bak’? y
    [root@CentOS7 data]# ll
    total 12
    -rw-r--r-- 1 root root 1819 Nov 12 13:08 profile.bak
    -rw-r--r-- 1 root root 1819 Nov 12 13:04 profile.bak~
    -rw-r--r-- 1 root root 1819 Nov 12 13:05 profile.bak.~1~

經典組合是  cp -av  file/directory  

(3)用法:

  • #cp命令複製可能會引起屬性變化;

cp ~wang/.bashrc bashrc.bak

ll !*

ll ~wang/.bashrc bashrc.bak

-rw-r--r--  1 root root 231 Oct 22 09:17 bashrc.bak

-rw-r--r--. 1 wang wang 231 Aug  8 20:06 /home/wang/.bashrc

##加入-p命令時,屬性不變

cp -p ~wang/.bashrc bashrc.bak1

ll !*

ll -p ~wang/.bashrc bashrc.bak1

-rw-r--r--  1 wang wang 231 Aug  8 20:06 bashrc.bak1

-rw-r--r--. 1 wang wang 231 Aug  8 20:06 /home/wang/.bashrc

  • 複製一些特殊文件時,文件類型也會發生改變

[root@CentOS7 data]# ll /etc/redhat-release

lrwxrwxrwx. 1 root root 14 Oct 14 08:52 /etc/redhat-release -> centos-release

[root@CentOS7 data]# ll redhat

-rw-r--r-- 1 root root 37 Oct 22 13:18 redhat

  • ##複製目錄時,要加入-r/R 選項

[root@CentOS7 data]# cp /boot/grub2 /data/gb.bak

cp: omitting directory ‘/boot/grub2’

[root@CentOS7 data]# cp -r /boot/grub2 /data/gb.bak

[root@CentOS7 data]# ls

gb.bak

  • 同一個命令執行兩次可能有兩個結果看以下。

[root@CentOS7 data]# cp /root/Downloads/ /data/d -r

[root@CentOS7 data]# ll /data/d

total 0

[root@CentOS7 data]# ls /data/d

[root@CentOS7 data]# cp /root/Downloads/ /data/d -r

[root@CentOS7 data]# ls /data/d

Downloads


 2mv命令

-i      

-f    

-b    

-v

-u  

3rm命令

    -r    遞歸操作

    -f    強制執行,不交互。

    -v    顯示運行過程

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章