一. 复制文件 - cp
语法: cp [选项] 源文件或目录 目标文件或目录
功能: 复制文件或目录.
常用选项:
· -f 强行复制文件或目录, 不论目的文件或目录是否已经存在.
· -i 覆盖文件之前先询问用户.
· -r / -R 递归处理, 将指定目录下的文件与子目录一并处理.
源对象和目标对象都是文件
当源对象和目标对象都是文件时, 且目标文件不存在时, cp 命令会将源文件复制成一个新的目标文件, 并以目标对象文件名命名, 放置于当前工作目录下. 新文件在形式上就像全新的文件一样, 有新的修改时间.
新文件 test2 和 test1 的 修改时间并不一样.
如果目标文件已经存在 , 则 cp 命令可能并不会提醒你这一点. 最好加上 -i 选项, 强制 shell 询问是否要覆盖已有文件.
如果回答 y, 则覆盖已有文件; 如果回答 n, 则停止文件复制.
源对象是文件, 目标对象是目录 (现有目录)
将文件复制到现有目录中.
如果将文件复制到的目标目录不存在 , 会产生报错信息.
提示: 先前的例子在目标目录名尾部加上了一个正斜线 ( / ) . 这表明 newidr 是一个目录而非文件. 这有助于表明目的, 而且在复制单个文件时非常重要. 如果没有使用正斜线, 同时子目录 newdir 又不存在, 就会产生麻烦. 在这种情况下, 试图将一个文件复制到 newdir 子目录反而会创建名为 newdir 的普通文件, 更是连错误消息都不会有. 因此, 记得在目标目录名尾部加上正斜线.
源对象和目标对象都是目录
cp 命令的 -R 选项功能强大. 可以用它在单个命令中递归地复制整个目录的内容.
在执行 cp -R 命令之前, 目录 dir 并不存在 . 它是随着 cp -R 命令被创建的, 整个 newdir 目录中的内容都被复制到其中. 注意, 新的 dir 目录中的所有文件都有新的日期. dir 目录现在已经成为了 newdir 目录的完整副本.
也可以在 cp 命令中使用通配符复制一组文件.
二. 文件剪切并重命名 - mv
语法: mv [选项] 源文件或目录 目标文件或目录
功能: 剪切并重命名文件或目录.
常用选项:
· -f 如果目标文件已经存在, 不会询问而直接覆盖.
· -i 若目标文件 (destination) 已经存在时, 就会询问是否覆盖.
在 Linux 中, mv 命令可以将文件和目录剪切 或重命名 或剪切并重命名.
源对象和目标对象都是文件
文件重命名.
注意, 移动文件会将文件名从 fall 更改为 fzll, 但 inode 编号和时间戳保持不变. 这是因为 mv 只影响文件名.
文件剪切并重命名.
inode 编号和时间戳同样保持不变.
源对象是文件, 目标对象是目录 (现有目录)
文件剪切.
inode 编号和时间戳同样保持不变.
源对象和目标对象都是目录
目录重命名 (目标对象目录不存在) .
目录剪切 (目标对象目录存在) , 将源对象目录剪切到目标对象目录下, 即成为目标对象目录的子目录.
目录剪切并重命名.
提示: 和 cp 命令类似, 也可以在 mv 命令中使用 -i 选项. 这样在 mv 试图覆盖已有的文件时会发出询问.