千家信息网

2.3 文件管理类命令

发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,4、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。1cp命令(1)cp命令的简单认识[root@CentOS7 data]# whatis cpcp (1) - copy f
千家信息网最后更新 2025年01月23日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 -bcp: overwrite 'profile.bak'? y[root@CentOS7 data]# lltotal 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.bakcp: overwrite 'profile.bak'? y[root@CentOS7 data]# lltotal 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 显示运行过程

0