cp拷贝

1 cp 拷贝、复制

NAME

cp - copy files and directories

?

SYNOPSIS

cp [OPTION]... [-T] SOURCE DEST????????-- cp 源位置 目标位置

cp [OPTION]... SOURCE... DIRECTORY

cp [OPTION]... -t DIRECTORY SOURCE...

?

DESCRIPTION

Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY. 拷贝一个文件(或多个文件)到目标目录

?

Mandatory arguments to long options are mandatory for short options too.

?

-a, --archive

same as -dR --preserve=all

?

--backup[=CONTROL]

make a backup of each existing destination file

?

-b like --backup but does not accept an argument

?

--copy-contents

copy contents of special files when recursive

?

-d same as --no-dereference --preserve=links

?

-f, --force 强制复制

if an existing destination file cannot be opened, remove it and try again (redundant if the -n option is used)

????????????如果如已有的目标文件不能打开,删之,在尝试一次拷贝

?

-i, --interactive 交互式拷贝

prompt before overwrite (overrides a previous -n option) 如果目标文件已经存在,在覆盖时或询问是否覆盖

?

-H follow command-line symbolic links in SOURCE

?

?

?

-n, --no-clobber

do not overwrite an existing file (overrides a previous -i option)

?

?

?

?

-P, --no-dereference 非解除参考(如果源是一个软链接文件,则只拷贝该连接,不拷贝文件本身)

never follow symbolic links in SOURCE

测试:


[[email protected] ~]$ ln -s file01.dat file01-slink.dat ##创建软连接文件file01-slink.dat

[[email protected] ~]$ ll

total 4

-rw-rw-r--. 1 hadoop3 hadoop3 171 Jul 12 10:51 file01.dat

lrwxrwxrwx. 1 hadoop3 hadoop3 10 Jul 12 10:53 file01-slink.dat -> file01.dat

?

[[email protected] ~]$ ln file01.dat file01-hlink.dat ##创建硬连接文件file01-hlink.dat

[[email protected] ~]$ ll

total 8

-rw-rw-r--. 2 hadoop3 hadoop3 171 Jul 12 10:51 file01.dat

-rw-rw-r--. 2 hadoop3 hadoop3 171 Jul 12 10:51 file01-hlink.dat

lrwxrwxrwx. 1 hadoop3 hadoop3 10 Jul 12 10:53 file01-slink.dat -> file01.dat

?

?

[[email protected] ~]$ cp -P file01-slink.dat backup/ ##非解除参考拷贝

[[email protected] ~]$ ls -al backup/

total 8

drwxrwxr-x. 2 hadoop3 hadoop3 4096 Jul 12 10:56 .

drwx------. 3 hadoop3 hadoop3 4096 Jul 12 10:55 ..

lrwxrwxrwx. 1 hadoop3 hadoop3 10 Jul 12 10:56 file01-slink.dat -> file01.dat ##因为backup目录中没有file01.dat文件,所以下面的cat报错

?

[[email protected] backup]$ cat file01-slink.dat

cat: file01-slink.dat: No such file or directory

?

[[email protected] ~]$ cp file01.dat backup/ ##手动把符号链接引用的源文件拷贝到backup目录,cat就可以查看符号连接文件的内容了

[[email protected] ~]$ cd backup/

[[email protected] backup]$ ls -ln

total 4

-rw-rw-r--. 1 500 500 171 Jul 12 11:05 file01.dat

lrwxrwxrwx. 1 500 500 10 Jul 12 10:56 file01-slink.dat -> file01.dat

[[email protected] backup]$ cat file01.dat

file01

-l, --link

link files instead of copying

?

sdfdsf

?

?

?

dgddsgd

gdfgdfhhgfhhfghfghfgjfjhgjhg

1111111111111111111111111111111111111111111111111

?

-L, --dereference

always follow symbolic links in SOURCE


[[email protected] ~]$ cp -L file01-slink.dat backup/ ##软连接文件file01-slink.dat拷贝到backup目录中,得到的目的文件的大小为171个字节

[[email protected] ~]$ ls -ln backup/ ##cp -L 拷贝软连接时,会把连接引用的源文件的内容一起拷贝过来,得到的是一个普通的文件 -- 即解引用

total 4

-rw-rw-r--. 1 500 500 171 Jul 12 11:08 file01-slink.dat

?

[[email protected] ~]$ cat backup/file01-slink.dat

file01

-l, --link

link files instead of copying

?

sdfdsf

?

?

?

dgddsgd

gdfgdfhhgfhhfghfghfgjfjhgjhg

1111111111111111111111111111111111111111111111111

?

-p same as --preserve=mode,ownership,timestamps

?

--preserve[=ATTR_LIST] 连同文件的属性一起复制过去(而不是使用默认的属性 --- 备份常用)

preserve the specified attributes (default: mode,ownership,timestamps), if possible additional attributes: context, links, xattr, all

????????????保存特定的属性(如,文件的模式、所有者、时间戳) 如果可能附加的属性也会保留

?

-c same as --preserve=context

?

--no-preserve=ATTR_LIST

don‘t preserve the specified attributes

?

--parents

use full source file name under DIRECTORY

?

-R, -r, --recursive

copy directories recursively 递归地拷贝目录

?

--reflink[=WHEN]

control clone/CoW copies. See below.

?

--remove-destination

remove each existing destination file before attempting to open it (contrast with --force) 移除每个现存的目标文件(在试图打开之前)

?

--sparse=WHEN

control creation of sparse files. See below. 控制稀疏文件的创建

?

--strip-trailing-slashes

remove any trailing slashes from each SOURCE argument 移除每个源参数中的末尾斜杠

?

?

-l, --link 硬连接

link files instead of copying

?

-s, --symbolic-link 软连接

make symbolic links instead of copying 做符号连接(当然是软连接)而不是拷贝

?

-S, --suffix=SUFFIX

override the usual backup suffix 指定通用的备份前缀

?

-t, --target-directory=DIRECTORY????????目标dest是一个目录

copy all SOURCE arguments into DIRECTORY 拷贝所有源参到目录

?

-T, --no-target-directory????????????????目标dest是一个文件

treat DEST as a normal file 把DEST参数看作为一个普通的文件

?

-u, --update

copy only when the SOURCE file is newer than the destination file or when the destination file is missing

????????????更新式拷贝 --- 仅当源文件比目标文件新或目标文件丢失时,才进行拷贝

?

-v, --verbose

explain what is being done

?

-x, --one-file-system

stay on this file system

?

-Z, --context=CONTEXT

set security context of copy to CONTEXT

?

--help display this help and exit

?

--version

output version information and exit

?

By default, sparse SOURCE files are detected by a crude heuristic and the corresponding DEST file is made sparse as well.

That is the behavior selected by --sparse=auto.

Specify --sparse=always to create a sparse DEST file whenever the SOURCE file contains a long enough sequence of zero bytes.

Use --sparse=never to inhibit creation of sparse files.

?

When --reflink[=always] is specified, perform a lightweight copy, where the data blocks are copied only when modified.

默认,执行的是一个轻量的拷贝,仅拷贝哪些修改了的数据块

If this is not possible the copy fails, or if --reflink=auto is specified, fall back to a standard copy. 指定--reflink=auto回到标准拷贝模式

?

?

The backup suffix is ‘~‘, unless set with --suffix or SIMPLE_BACKUP_SUFFIX.

?

The version control method may be selected via the --backup option or through the VERSION_CONTROL environment variable.

Here are the values:

none, off

never make backups (even if --backup is given) 如果version_control环境变量值为none,则拷贝时不做备份(即使指定了--backup选项)

numbered, t

make numbered backups

existing, nil

numbered if numbered backups exist, simple otherwise

simple, never

always make simple backups

?

As a special case, cp makes a backup of SOURCE when the force and backup options are given and SOURCE and DEST are the same name for an existing, regular file.

?

?

cp使用:

1 同时拷贝多个文件

格式: cp 文件1 文件2 目的目录


[[email protected] ~]$ ls -ln

total 16

-rw-rw-r--. 1 500 500 176 Jul 12 11:15 a_1.txt

-rw-rw-r--. 1 500 500 137 Jul 12 11:16 a_2.txt

-rw-rw-r--. 1 500 500 106 Jul 12 11:16 a_3.txt

drwxrwxr-x. 2 500 500 4096 Jul 12 11:16 files

[[email protected] ~]$ cp a_1.txt a_2.txt files/

[[email protected] ~]$ ls -ln files/

total 8

-rw-rw-r--. 1 500 500 176 Jul 12 11:17 a_1.txt

-rw-rw-r--. 1 500 500 137 Jul 12 11:17 a_2.txt

?

2 拷贝一个目录


[[email protected] ~]$ cp -r files files_backup

[[email protected] ~]$ tree

.

├── a_1.txt

├── a_2.txt

├── a_3.txt

├── files

│?? ├── a_1.txt

│?? └── a_2.txt

└── files_backup

├── a_1.txt

└── a_2.txt

?

3硬连接拷贝,而不仅仅是拷贝一个文件(拷贝出来的文件与源文件会同步更新的)


[[email protected] ~]$ mkdir links

[[email protected] ~]$ cp -l a_2.txt links

[[email protected] ~]$ ls -ln links

total 4

-rw-rw-r--. 2 500 500 137 Jul 12 11:16 a_2.txt

?

[[email protected] ~]$ echo ‘ adddd‘ >> a_2.txt ##向源文件追加字符

[[email protected] ~]$ cat a_2.txt

22222222222222222222222

2222222222222222222222222222222

222222222222222222222222222222222222

2222222222222222222222222222222222222222222

adddd

[[email protected] ~]$ cat links/a_2.txt ##硬连接文件的内容同步更新了

22222222222222222222222

2222222222222222222222222222222

222222222222222222222222222222222222

2222222222222222222222222222222222222222222

adddd

?

4 软连接拷贝 -- 符号链接


[[email protected] ~]$ cp -s a_3.txt links/

cp: `links/a_3.txt‘: can make relative symbolic links only in current directory

##跨目录不能创建相对符号连接

?

[[email protected] ~]$ cp -s /home/hadoop3/a_3.txt links

[[email protected] ~]$ ls -ln links

total 4

-rw-rw-r--. 2 500 500 145 Jul 12 11:28 a_2.txt

lrwxrwxrwx. 1 500 500 21 Jul 12 11:34 a_3.txt -> /home/hadoop3/a_3.txt

?

?

时间: 2024-11-13 08:50:56

cp拷贝的相关文章

linux cp 拷贝文件或目录

cp 拷贝文件或目录 默认不能拷贝目录 常用来备份: [[email protected] ~]# cp a.txt /tmp/ [[email protected] ~]# cp /root/a.txt /tmp/ cp: overwrite ‘/tmp/a.txt’? y 拷贝不提示,默认是提示的 第一种方法:\cp \cp /mnt/test.txt /tmp 第二种方法:cp加 命令全路径 /bin/cp /mnt/test.txt /tmp 屏蔽掉系统默认的对应的命令别名,默认执行cp

cp -拷贝文件出现错误

对于cp -a最主要的用法是在保留原文件属性的前提下复制文件. 如果出现了拷贝文件错误,在文件前面加上-a 即可 原文地址:https://www.cnblogs.com/jack-hzm/p/10226053.html

Linux 命令 - cp: 拷贝文件和目录

命令格式 cp [OPTION]... [-T] SOURCE DEST cp [OPTION]... SOURCE... DIRECTORY cp [OPTION]... -t DIRECTORY SOURCE... 命令参数 -a, --archive 复制文件和目录及其属性.包括所有权和权限. --backup[=CONTROL] 为每个已存在的目标文件创建备份. -b 类似 --backup 选项,但不接受参数. -f, --force 如果已存在的目标文件无法打开,将其移除并重试(当使

VM Ubuntu find查找路径 cp拷贝

sudo find /home -type f -name "pycharm*"查找 类型是文件 名字为pycharm * 变长的所有路径 cp /home/max/mysoft/pycharm-professional-2019.1.2.tar.gz /home/max/ceshi将 绝对路径 复制到另一路径 原文地址:https://www.cnblogs.com/max404/p/11738474.html

linxu命令之cp 拷贝整个目录下的所有文件

cp scp rsync 拷贝目录文件的一些常识

一. cp 拷贝目录 cp -r dir1 dir2 如果目录dir2不存在.命令相当于mv dir1 dir2 如果目录dir2存在  dir1目录会被拷贝到dir2下面   结果:(dir2/dir1) 其实等于 cp -r dir1/ dir2/ cp -r dir1 dir2/ cp -r dir1/ dir2 (区别 拷贝目录下的所有文件,将dir1下的所有文件和目录拷贝到dir2下,但不包括dir1本身目录) cp -r dir1/* dir2 等于 cp -r dir1/* dir

关于cp命令中拷贝所有的写法

今天在编写一个脚本的时候,发现一个比较奇怪的问题:就是在使用cp拷贝当前目录下所有文件到目标目录的时候,源和目标目录大小不同.原来一直没有留意有这样的问题,后来查了些资料,才知道以前一直使用的格式有误,.一.预备cp就是拷贝,最简单的使用方式就是: cp oldfile newfile 但这样只能拷贝文件,不能拷贝目录,所以通常用: cp -r old/ new/ 那就会把old目录整个拷贝到new目录下.注意,不是把old目录里面的文件拷贝到new目录,而是把old直接拷贝到new下面,结果是

嵌入式Linux cp命令实现

最近项目在数据导出的时候出现问题,基本思路是: 首先vfork创建一个进程,子进程中创建2个线程,线程1负责界面显示,线程2负责数据拷贝:父进程保存配置文件并退出应用: 其中,线程2中又创建一个进程用来调用系统cp命令,在线程1中又vfork使用类system命令函数发送kill命令杀死cp拷贝(kill -9 $(pgrep cp)); 通过以上思路,可以知道,设计混乱,线程中不断创建进程,进程又线程的,好歹哥也编程几年了,怎么能容忍这么垃圾的代码存在,闲暇之时,改之: 新的思路: 自己实现c

2.10 环境变量PATH 2.11 cp命令 2.12 mv命令 2.13 文档查看cat/mor

2.10 环境变量PATH 1.环境变量 查看 PATH环境变量: 只要命令在上述的环境变量中,敲命令就不需要使用绝对路径 如图,将cp命令复制到.tmp目录下,效果和使用ls是一样的 如果想直接使用ls2 ,需要改环境变量: 如图,将/tmp添加到PATH环境变量中,echo PATH,将显示tmp,直接使用ls2 会发现和使用ls效果一样的: 如图,新开一个窗口,发现使用ls2不能生效了,说明ls2 没能在PATH中永久生效, 如果需要永久生效: 在新开一个窗口, 发现可以使用了 如果不想使