linux常用命令 cp mv rm

cp:
可以使用这个命令复制一个文件到一个指定的目的地, 或者复制任意多个文件到一个目的目录.
如果最后一个命令参数为一个已经存在的目录名,cp 会将每一个源文件复制到那个目录下(维持原文件名).
如果所给的参数只有两个文件名,它把前一个文件复制到后一个文件上.(重命名)
如果最后一个参数不是文件名,目录名,和给出多于两个非选项参数,是错误的.

-a:相当于dr --preserve=all的意思 -dpR
-d:若目标文件为连接文件属性(link file),则复制链接文件本身;
-f:为强制(force)的意思,若目标文件已经存在且无法开启,则删除后再尝试一次;
-i:若目标文件(destination)已经存在时,在覆盖时会先询问操作的进行(常用);
-l:制作硬链接代替非目录拷贝。
-s 复制成为符号连接文件(symbolic link),亦即“快捷方式”,“软链接”
-p, --preserve保持原始文件的所有者,组,许可,和时间表属性
-u:如果存在的目的地有相同的,或者更新的修改时间,不复制非目录(文件).
-r:递归复制,用于目录的复制操作。

注意:
-P(大), --parents
一个斜杠和指定的源文件名构成目的文件。 最后送给 cp 的参数必须是一个已存在的目录的名字。
例如, 下面这个命令:
cp --parents a/b/c existing_dir
复制文件 `a/b/c’ 到 texisting_dir(现有的目录)/a/b/c’,建立任 何缺少的中间目录。

-s:生成符号链接代替非目录拷贝.所有的源文件名必须是绝对的(由`/'开始),除非目的文件是在当前目录.
这选项仅仅在系统不支持符号链接时引起一个错误消息.

-r:递归地复制目录,复制任何非目录和非符号链接(那是,FIFOs和特别文件)他们是常规的文件一样看待.
这意味着尝试读出每个源文件的数据,和把它写到目的地上.
因而,用这个选项,cp’可能彻底地终止,当不确定地读一个FIFO或者/dev/tty时,
(这是一个缺陷.它意味着如果你不知道在这棵树(目录)中有什么要复制的时候, 你不得不避开-r并使用-R打开一个未知的设备文件, 比如说一台扫描仪,会有未知的效果发生在硬件上)

原文件:

# ll
总用量 60
-rw-r--r--. 1 mj mj   231 8月   8 20:06 bashrc

软链接:

# cp -lv bashrc bashrc_hard_link
"bashrc" -> "bashrc_hard_link"

硬链接:

# cp -sv bashrc bashrc_soft_link
"bashrc" -> "bashrc_soft_link"
# ls -lai
 2797349 -rw-r--r--.  2 mj   mj     231 8月   8 20:06 bashrc
 2797349 -rw-r--r--.  2 mj   mj     231 8月   8 20:06 bashrc_hard_link
 2797363 lrwxrwxrwx.  1 root root     6 1月  17 11:30 bashrc_soft_link -> bashrc

硬链接:链接数加1,硬链接复制后文件inode号一直
软链接:是链接文件
当用cp命令copy一个软链接时,copy的是软链接所对应的内容,而不是它本身。

cp需要考虑的问题:
1、是否需要完整的保留源文件信息?
cp -a 或者 --dpR
-p:保持原始文件的所有者,组,许可,和时间表属性
-d:若目标文件为连接文件属性(link file),则复制链接文件本身
-R:递归复制目录,如果对象不是普通文件或目录那么做相应正 确处理,(因此,一个FIFO或者特殊文件在复制后仍然是一个FIFO型或者相应特殊文件。)

2、源文件是否为符号链接文件:
cp
当用cp命令copy一个软链接时,copy的是软链接所对应的内容,而不是它本身。
-d:复制符号链接作为符号链接而不是复制它指向的文件, 并且保护在副本中原文件之间的硬链接.
-l:制作硬链接代替非目录拷贝。
-s:生成符号链接代替非目录拷贝。

3、源文件是否为特殊文件:
cp
-R:一个FIFO或者特殊文件在复制后仍然是一个FIFO型或者相应特殊文件。
-r:递归复制,用于目录的复制操作。
这是一个缺陷.它意味着如果你不知道在目录有什么要复制的时候, 你不得不避开-r并使用-R打开一个未知的设备文件, 比如说一台扫描仪,会有未知的效果发生在硬件上
以后将会使用-R

4、源文件是否为目录:
-R:递归
-r:递归

rm:
-f:强制删除,忽略不存在文件,不会出现警告信息
-i:交互模式,在删除前询问是否操作
-r:递归删除,最常用于目录删除,危险操作。
-I:在删除三个以上的文件之前或递归删除文件时提示一次;比-i少干扰,同时仍能防止大多数错误。

# rm -i bashrc
rm:是否删除普通文件 "bashrc"?y
# rm -f bashrc1
# rm tes/
rm: 无法删除"tes/": 是一个目录

# rm -r tes/
rm:是否进入目录"tes/"? y
rm:是否删除普通文件 "tes/bashrc11111"?y
rm:是否删除普通文件 "tes/wtmp"?y
rm:是否删除普通文件 "tes/bashrc_hard_link"?y             
rm:是否删除符号链接 "tes/bashrc_soft_link"?y
rm:是否删除普通文件 "tes/bashrc_source"?y
rm:是否删除目录 "tes/"?y

mv:
-f:强制复制,如果目标文件存在,不会询问直接覆盖
-i:若文件存在,询问是否覆盖
-u:若目标文件存在,且source文件较新,才会更新。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值