linux cp命令,怎么跳过相同的文件

linux cp命令,怎么跳过相同的文件,第1张

1、使用cp命令的-n参数即可跳过相同的文件

2、cp命令使用详解:

1)、用法:cp [选项]... [-T] 源文件 目标文件

 或:cp [选项]... 源文件... 目录

 或:cp [选项]... -t 目录 源文件...

将源文件复制至目标文件,或将多个源文件复制至目标目录。

2)、长选项必须使用的参数对于短选项时也是必需使用的。

-a, --archive 等于-dR --preserve=all

--backup[=CONTROL 为每个已存在的目标文件创建备份

-b 类似--backup 但不接受参数

--copy-contents 在递归处理是复制特殊文件内容

-d 等于--no-dereference --preserve=links

-f, --force 如果目标文件无法打开则将其移除并重试(当 -n 选项

存在时则不需再选此项)

-i, --interactive 覆盖前询问(使前面的 -n 选项失效)

-H 跟随源文件中的命令行符号链接

-l, --link 链接文件而不复制

-L, --dereference 总是跟随符号链接

-n, --no-clobber 不要覆盖已存在的文件(使前面的 -i 选项失效)

-P, --no-dereference 不跟随源文件中的符号链接

-p 等于--preserve=模式,所有权,时间戳

--preserve[=属性列表 保持指定的属性(默认:模式,所有权,时间戳),如果

可能保持附加属性:环境、链接、xattr 等

-c same as --preserve=context

--sno-preserve=属性列表 不保留指定的文件属性

--parents 复制前在目标目录创建来源文件路径中的所有目录

-R, -r, --recursive 递归复制目录及其子目录内的所有内容

--reflink[=WHEN] 控制克隆/CoW 副本。请查看下面的内如。

--remove-destination 尝试打开目标文件前先删除已存在的目的地

文件 (相对于 --force 选项)

--sparse=WHEN 控制创建稀疏文件的方式

--strip-trailing-slashes 删除参数中所有源文件/目录末端的斜杠

-s, --symbolic-link 只创建符号链接而不复制文件

-S, --suffix=后缀 自行指定备份文件的后缀

-t, --target-directory=目录 将所有参数指定的源文件/目录

复制至目标目录

-T, --no-target-directory 将目标目录视作普通文件

-u, --update copy only when the SOURCE file is newer

than the destination file or when the

destination file is missing

-v, --verboseexplain what is being done

-x, --one-file-systemstay on this file system

-Z, --context=CONTEXTset security context of copy to CONTEXT

--help 显示此帮助信息并退出

--version 显示版本信息并退出

3)、默认情况下,源文件的稀疏性仅仅通过简单的方法判断,对应的目标文件目标文件也

被为稀疏。这是因为默认情况下使用了--sparse=auto 参数。如果明确使用

--sparse=always 参数则不论源文件是否包含足够长的0 序列也将目标文件创文

建为稀疏件。

使用--sparse=never 参数禁止创建稀疏文件。

4)、当指定了--reflink[=always] 参数时执行轻量化的复制,即只在数据块被修改的

情况下才复制。如果复制失败或者同时指定了--reflink=auto,则返回标准复制模式。

5)、备份文件的后缀为"~",除非以--suffix 选项或是SIMPLE_BACKUP_SUFFIX

环境变量指定。版本控制的方式可通过--backup 选项或VERSION_CONTROL 环境

变量来选择。以下是可用的变量值:

none, off 不进行备份(即使使用了--backup 选项)

numbered, t 备份文件加上数字进行排序

existing, nil 若有数字的备份文件已经存在则使用数字,否则使用普通方式备份

simple, never 永远使用普通方式备份

6)、有一个特别情况:如果同时指定--force 和--backup 选项,而源文件和目标文件

是同一个已存在的一般文件的话,cp 会将源文件备份。

什么叫相同的文件?应该是说目标位置已经存在该文件名了吧。具体请看cp命令功能,-i可能是你需要的:

cp命令该命令的功能是将给出的文件或目录拷贝到另一文件或目录中,同MSDOS下的copy命令一样,功能十分强大。

语法: cp [选项] 源文件或目录 目标文件或目录

说明:该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。

该命令的各选项含义如下:

- a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合。

- d 拷贝时保留链接。

- f 删除已经存在的目标文件而不提示。

- i 和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。

- p 此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。

- r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。

- l 不作拷贝,只是链接文件。

需要说明的是,为防止用户在不经意的情况下用cp命令破坏另一个文件,如用户指定的目标文件名已存在,用cp命令拷贝文件后,这个文件就会被新源文件覆盖,因此,建议用户在使用cp命令拷贝文件时,最好使用i选项。

例子:

Cp -i file1 file2 (将文档 file1 复制成 file2 . –i为提示确认。)

cp file1 dir1 将文档 file1 复制到目录 dir1 下,文件名仍为 file1.

cp /tmp/file1 . 将目录 /tmp 下的文档 file1复制到现行目录下,档名仍为 file1.

cp /tmp/file1 file2 将目录 /tmp 下的文档 file1现行目录下,档名为file2

cp -r dir1 dir2 (recursive copy) 复制整个目录.若目录 dir2 不存在,则将目录dir1,及其所有文档和子目录,复制到目录 dir2 下,新目录名称为dir1.若目录dir2不存在,则将dir1,及其所有文档和子目录,复制为目录 dir2.


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/7311887.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存