标签:Linux文件管理命令

复制文件和目录cp

  • cp [OPTION]…[-T] SOURCE DEST
  • cp [OPTION]…SOURCE…DIRECTORY
  • cp [OPTION]…-t DIRECTORY SOURCE…
  • cp SRC DEST

SRC是文件:
如果目标不存在:新建DEST,并将SRC中内容填充至DEST中
如果目标存在:
如果DEST是文件:将SRC中的内容覆盖至DEST中
基于安全,建议为cp命令使用-i选项
如果DEST是目录:在DEST下新建与原文件同名的文件,并将SRC中内容填充至新文件中

源\目标 不存在 存在且为文件 存在且为目录
一个文件 新建DEST,并将SRC中内容填充至DEST中 将SRC中的内容覆盖至DEST中
注意数据丢失风险!建议用-i选项
在DEST下新建与原文件同名的文件,并将SRC中内容填充至新文件中
多个文件 提示错误 提示错误 在DEST下新建与原文件同名的文件,并将原文件内容复制进新文件中
目录
须使用-r选项
创建指定DEST同名目录,复制SRC目录中所有文件至DEST下 提示错误 在DEST下新建与原目录同名的目录,并将SRC中内容复制至新目录中
  • cp SRC…DEST

SRC…:多个文件
DEST必须存在,且为目录,其他情况均会出错

  • cp SRC DEST

SRC是目录:此时使用选项: -r
如果DEST不存在:则创建指定目录,复制SRC目录中所有文件至DEST中
如果DEST存在:
如果DEST是文件:报错
如果DEST是目录:在DEST下新建与原目录同名的目录,并将SRC中内容复制至新目录中

  • OPTION选项:
    • -i:覆盖前提示 -n:不覆盖,注意两者顺序
    • -r,-R:递归复制目录及内部的所有内容
    • -a:归档,相当于-dR —preserv=all
    • -d: —no-dereference —preserv=links 不复制原文件,只复制链接名
    • —preserv[=ATTR_LIST]

mode:权限
ownership:属主属组
timestamp:
links
xattr
context
all

  • -p:等同—preserv=mode,ownership,timestamp
  • -v:—verbose
  • -f:—force
  • -u:—update 只复制源比目标更新的文件或目标不存在的文件
  • -b:目标存在,覆盖前先备份
  • —backup=numbered 目标存在,覆盖前先备份加数字后缀

cp f0 file1 —backup 在覆盖前将file1做备份
cp -r /etc/sysconfig/ /data/ -r 可以复制文件夹-i 覆盖前提示
-d 保留它的连接属性(复制软链接文件 还是软连接)
-v verbose 显示详细的过程
-f force 强制,先删除源文件在复制
-a —archive 归档
-p 等同于 保留 属性,所有者,时间

练习

1、定义别名命令bacetc,每天将/etc/目录下所有文件,备份到/data独立的子目录下,并要求子目录格式为backupYYYY-mm-dd,备份过程可见
alias baketc=’cp -av /etc/ /data/backupdate +%F
2、创建/data/rootdir/目录,并复制/root下所有文件到该目录内,要求保留原有
cp -rp /root/ /data/rootdir

移动和重命名文件

  • mv [OPTION]… [-T] SOURCE DEST
  • mv [OPTION]…SOURCE… DIRECTORY
  • mv [OPTION]…-t DIRECTORY SOURCE…

常见选项:
-i:交互式
-f:强制
-b:目标存在,覆盖前先备份

删除

  • rm [OPTION]… FILE…
  • 常见选项:

-i 交互式
-f 强制删除
-r 递归

  • 示例:

rm -rf /*

尽量用mv代替rm
执行此命令 rm file
相当于执行mv file /data/
alias rm=’mv -t /data’