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 顯示運行過程