Linux经常使用命令:cp,mv,rm

cp(copy)linux


  cp命令能够复制文件或者目录,还能够创建连接文件。bash

[root@Linux ~]# cp [-adfilprsu] 来源文件(source) 目标文件(destination)
[root@linux ~]# cp [options] source1 source2 source3 .... directory

-R, -r, --recursive      copy directories recursively
-p     same as--preserve=mode,ownership,timestamps
-a, --archive     same as -dR--preserve=all [能够保留连接文件],通常只有root执行,经常使用于归档备份

复制文件ide

一、可不能够把一个文件复制成另外一个文件? Ok
spa

二、可不能够把一个文件复制成多个文件? Not ok
日志

三、可不能够把多个文件复制成一个文件? Not ok
orm

四、可不能够把多个文件复制到一个目录? Ok
递归


规则:若是命令须要指定 src , dst 两个参数时, dst一般是最后一个参数做为目标而且有且只有一个。
ip


# cp a b c d   # 什么意思? source: a b c , destination: d , 把 a b c 拷贝到目录 drem

若是有多个 src 源,那么dst 目的地必定必须是目录。
it


# cp /etc/a.txt  /tmp/b

若是b是目录且存在: 则把 a.txt 复制到 b 目录下,并保持原文件名

若是b是文件:

    若是b不存在,则复制a.txt并重命名为b

    若是b存在,则提示是否覆盖


# cp -r /etc/init.d/  /tmp/b

若是b是目录:

    b目录已存在: 则把 init.d 复制到 b 目录下,并保持原文件名

    b目录不存在: 则把 init.d 复制到 /tmp 目录下,重命名为 b

若是b是文件且存在: Error , 能够执行,可是结果错误


以上状况, 能够先考虑: 文件是否存在, 而后再考虑是目录 or 文件, 应该更合理。



复制目录

# cp /etc  /tmp

cp: omitting directory '/etc'

# cp -r /etc /tmp  # 复制目录须要使用 -r 递归选项


复制隐藏文件

用 cp * /tmp 这种类型的操做中,怎么能把隐藏文件一块儿拷贝过去呢?

咱们打上面这条命令只能将非隐藏的文件所有复制。 缘由是:(通配符没法文件名匹配以"."开头的文件) 


# cp -a . /tmp  # right

# cp .* /tmp   # 仅仅拷贝隐藏文件



mv(move)


  mv命令一般用于【移动文件】,以及【重命名】。

mv 在操做目录时, 不须要指定 -r 选项就直接能够。


# mv /etc/somedir /tmp/somefile    # error, 不能用目录去覆盖文件

# mv /etc/somedir /tmp/somedir     # yes 

    若是/tmp/somedir 存在, 则保存在 /tmp/somedir/ 目录下

    若是/tmp/somedir 不存在, 则保存在 /tmp/ 目录下,并重命名



rm(remove)


  rm命令用于删除文件及目录。 有了它基本不会再用 rmdir 这个了。


rm -rf 命令使用规则:

一、生产环境中,不要一直以root用户登陆

二、操做时,比的是慢和仔细,而不是快, 按下 ENTER 以前,必定要反复检查

三、关键业务操做,最好找一个同事在旁边看,做证

四、开启模拟终端软件日志记录功能