everyday:linux cp

everyday:linux cp

功能说明

cp 命令用于复制文件或目录

  1. 若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息
  2. 若同时指定多个文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中

命令详解

  1. 命令格式
    • cp [选项]... [-T] 源文件 目标文件
    • cp [选项]... 源文件... 目录
    • cp [选项]... -t 目录 源文件...
  2. 命令功能
    将源文件复制至目标文件,或将多个源文件复制至目标目录。长选项必须使用的参数对于短选项时也是必需使用的。
  3. 命令参数
-a, --archive 等于-dR --preserve=all
--attributes-only 仅复制属性而不复制数据 --backup[=CONTROL 为每个已存在的目标文件创建备份
-b 类似--backup 但不接受参数
--copy-contents 在递归处理是复制特殊文件内容
-d 等于--no-dereference --preserve=links
-f, --force 如果目标文件无法打开则将其移除并重试(当 -n 选项存在时则不需再选此项)
-i, --interactive 覆盖前询问(使前面的 -n 选项失效)
-H 跟随源文件中的命令行符号链接
-l, --link hard link files instead of copying
-L, --dereference always follow symbolic links in SOURCE
-n, --no-clobber 不要覆盖已存在的文件(使前面的 -i 选项失效)
-P, --no-dereference 不跟随源文件中的符号链接
-p 等于--preserve=模式,所有权,时间戳
--preserve[=属性列表 保持指定的属性(默认:模式,所有权,时间戳),如果可能保持附加属性:环境、链接、xattr 等
--no-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 只在源文件比目标文件新,或目标文件不存在时才进行复制
-v, --verbose 显示详细的进行步骤
-x, --one-file-system 不跨越文件系统进行操作
--help 显示此帮助信息并退出
--version 显示版本信息并退出

 默认情况下,源文件的稀疏性仅仅通过简单的方法判断,对应的目标文件目标文件也被为稀疏。这是因为默认情况下使用了--sparse=auto 参数。如果明确使用 --sparse=always 参数则不论源文件是否包含足够长的0 序列也将目标文件创文建为稀疏件。使用--sparse=never 参数禁止创建稀疏文件。

 当指定了--reflink[=always] 参数时执行轻量化的复制,即只在数据块被修改的情况下才复制。如果复制失败或者同时指定了--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 不进行备份(即使使用了--backup 选项)
        numbered, t 备份文件加上数字进行排序
        existing, nil 若有数字的备份文件已经存在则使用数字,否则使用普通方式备份
        simple, never 永远使用普通方式备份

 有一个特别情况:如果同时指定--force 和--backup 选项,而源文件和目标文件是同一个已存在的一般文件的话,cp 会将源文件备份。
  1. 举例
    • eg1 拷贝f1.txt为cpf1.txt
        cp f1.txt cpf1.txt
+ eg2 采用交互方式将文件f1.txt拷贝为cpf12.txt
    #1. 如果cpf12.txt不存在,则直接复制成功
        cp -i f1.txt cpf12.txt
  #2. 如果cpf12.txt已存在,则会出现提示是否覆盖原来的,y就会覆盖
    cp -i f1.txt cpf12.txt
  overwrite cpf12.txt? (y/n [n]) y
  #3. 如果cpf12.txt已存在,则会出现提示是否覆盖原来的,n就不会覆盖
    cp -i f1.txt cpf12.txt
  overwrite cpf12.txt? (y/n [n]) n
  not overwritten
+ eg3 强制覆盖
    # 如果cpf12.txt已经存在,也可以使用强制覆盖
    cp -f f1.txt cpf12.txt
+ eg4 拷贝目录
    # 将目录dir1复制成dir11
    cp -R dir1 dir11
    ls -la dir11
+ eg5 同时拷贝文件和目录
    # 新建一个目录dir3
  mkdir dir3
  # 将某些文件和目录复制到dir3目录下
  cp -R dir11/f1.txt dir12/f2.txt dir1 dir2 dir3
  ls -la dir3
+ eg6 拷贝的文件保留属性
    # -p或--preserve保留源文件或目录的属性,包括所有者、所属组、权限与时间
  cp -p dir2/f2.txt f2.txt
  # -P或--parents保留源文件或目录的路径,此路径可以是绝对路径或相对路径,且目的目录必须已经存在
  cp -P dir2/f2.txt f3.txt
  # -b备份,MAC上不支持该命令,linux系统上可以用
+ eg7 目录合并及文件覆盖
    # 全并两个目录
  # -f 强制覆盖 -r 拷贝目录和文件 -v 显示过程 -p 保留原有属性
  cp -frvp dir1/* dir2

Questons and Solve method

  1. cp: omitting directory "xxx"
    在linux系统中,复制文件夹,提示:
    cp: omitting directory './usr'
    其中,usr是要复制的文件夹名,出现该警告的原因是因为usr目录下还存在目录,所以不能直接拷贝。

    解决办法:使用递归拷贝,在cp命令后面加上-r参数,形如:
    [root@localhost opt]# cp -r ./usr /
    这是的-r代表递归的意思。

    同样,在linux系统下删除目录时也需要加上-r参数 ,如果目录为空,则会直接删除,如果目录非空,则会级联删除。不过在级联删除时也会有一个问题就是如果目录下存在很多的文件或者子目录,系统会一个一个进行提示。如果想一步删除不用提示的话可以使用rm -rf命令。f是force的意思,代表强制删除,无提示!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,552评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,666评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,519评论 0 334
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,180评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,205评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,344评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,781评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,449评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,635评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,467评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,515评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,217评论 3 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,775评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,851评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,084评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,637评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,204评论 2 341

推荐阅读更多精彩内容

  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,127评论 2 34
  • 1、Linux上的文件管理命令有哪些以及常用方法shell:shell负责接收用户输入的命令并进行解释,将需要执行...
    乀koala阅读 778评论 0 3
  • Linux指令大全 1.cat 使用权限:所有使用者 使用方式:cat [-AbeEnstTuv] [--help...
    muyang_js的简书阅读 2,831评论 0 12
  • 运城这几天的日子让我不禁感叹:这地方向来没有春秋,只有冬夏!只不过几天的光景,便把人扔到了瑟瑟冷风中,我这...
    VC_ccc阅读 1,296评论 0 0
  • 烟花三月 初春的时节 冬眠的动物醒来 爱情也睡醒了 一场小雨 淋湿了路人 人群之中她自己 烟雨蒙蒙和你 对视一...
    有营养哦阅读 169评论 0 1