如何使用cp命令仅复制所有文件而略过文件夹

如何使用cp命令仅复制所有文件而略过文件夹,第1张

for file in/home/alex/Pictures/DCIM/2*/*.jpg do    #截取图片的文件名 如: "xxoo.jpg"    i=$(echo ${file}|awk -F'/' '{print $NF}')    #判断目标目录中是否存在相同的文件    if ls /home/alex/extpic | grep -q -w ${i}  then       #若存在,mv 将存在的文件改名,改名后桐扰禅将源目录中的文件复制过去  李侍     mv /home/alex/extpic/${i}  /home/alex/extpic/bak_${i}       cp ${file} /home/alex/extpic    fi    #不存在相同的文件 就直接copy    cp ${file}  /home/alex/extpic done #===================================================================== #至于第二个cp,要不要放在if内(如下);放或者不放,------都行,看个人习惯 if '存在' then   mv ... ... #存在则改名   cp ... ... #改名后复制文件 else    cp ... ... 局尘#不存在 则 直接复制 f

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 会将源文件备份。


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

原文地址: http://outofmemory.cn/tougao/8203269.html

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

发表评论

登录后才能评论

评论列表(0条)

保存