热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Linux系统利用cp命令实现强制覆盖功能的方法

cp命令是我日常学习中经常会遇到的一个命令,下面这篇文章主要给大家介绍了关于Linux系统利用cp命令实现强制覆盖功能的方法,并且给大家简单的介绍了cp命令的基础知识,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。

前言

cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。

语法

cp(选项)(参数)

选项

  • -a:此参数的效果和同时指定"-dpR"参数相同;
  • -d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;
  • -f:强行复制文件或目录,不论目标文件或目录是否已存在;
  • -i:覆盖既有文件之前先询问用户;
  • -l:对源文件建立硬连接,而非复制文件;
  • -p:保留源文件或目录的属性;
  • -R/r:递归处理,将指定目录下的所有文件与子目录一并处理;
  • -s:对源文件建立符号连接,而非复制文件;
  • -u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件;
  • -S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;
  • -b:覆盖已存在的文件目标前将目标文件备份;
  • -v:详细显示命令执行的操作。

参数

源文件:制定源文件列表。默认情况下,cp命令不能复制目录,如果要复制目录,则必须使用-R选项;

目标文件:指定目标文件。当“源文件”为多个文件时,要求“目标文件”为指定的目录。

利用cp命令实现强制覆盖功能

我们平常在Linux中使用 cp 命令时,会发现将一个目录中文件复制到另一个目录具有相同文件名称时,即使添加了 -rf 参数强制覆盖复制时,系统仍然会提示让你一个个的手工输入 y 确认复制,所添加的rf参数是不起作用的。

原因:

cp命令被系统设置了别名,相当于cp=‘cp -i'

查询alias命令

[root@localhost sonarqube]# alias 
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

通过上述输出,可以看出,我们平时使用 cp 命令,虽然没有添加任何参数 ,但系统默认会在我们使用 cp 命令时自动添加 -i 参数

 -i, --interactive
  prompt before overwrite

-i 即交互的缩写方式,也就是在使用 cp 命令作文件覆盖操作之前,系统会要求确认提示.这个本来是系统的一个保险措施.如果有很多文件要复制,觉得一个一个输入y 确认麻烦的话,可以使用如下方法解决:

强制复制

建议大家使用方式一,因为取消别名的话很容易造成风险,万一又忘记恢复别名,以后的复制都不会有提示信息。
有提示信息可以多一层保险嘛,是人都会有犯混的时候,给自己加一个保险,有保障呀.

方式一

使用原生的cp命令

/bin/cp -rf xxxx

方式二

取消cp命令别名

unalias cp

去掉 cp 命令的别名,这时你再用 cp -rf 复制文件时,就不会要求确认啦.

复制完成后恢复别名

alias cp='cp -i'

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。


推荐阅读
  • 本文介绍如何通过更改软件源来提前体验Ubuntu 8.10,包括详细的配置步骤和相关注意事项。 ... [详细]
  • 本文详细记录了在银河麒麟操作系统和龙芯架构上使用 Qt 5.15.2 进行项目打包时遇到的问题及解决方案,特别关注于 linuxdeployqt 工具的应用。 ... [详细]
  • 在多线程编程环境中,线程之间共享全局变量可能导致数据竞争和不一致性。为了解决这一问题,Linux提供了线程局部存储(TLS),使每个线程可以拥有独立的变量副本,确保线程间的数据隔离与安全。 ... [详细]
  • 本文将详细介绍如何在Linux操作系统中执行PHP脚本,包括环境配置、命令使用及验证方法。对于需要在Linux环境下开发或部署PHP应用的用户来说,这是一篇非常实用的文章。 ... [详细]
  • 本文详细介绍了Linux系统中init进程的作用及其启动过程,解释了运行级别的概念,并提供了调整服务启动顺序的具体步骤和实例。通过了解这些内容,用户可以更好地管理系统的启动流程和服务配置。 ... [详细]
  • 本文将深入探讨PHP编程语言的基本概念,并解释PHP概念股的含义。通过详细解析,帮助读者理解PHP在Web开发和股票市场中的重要性。 ... [详细]
  • 解决网站乱码问题的综合指南
    本文总结了导致网站乱码的常见原因,并提供了详细的解决方案,包括文件编码、HTML元标签设置、服务器响应头配置、数据库字符集调整以及PHP与MySQL交互时的编码处理。 ... [详细]
  • 本文探讨了在Linux系统上使用Docker时,通过volume将主机上的HTML5文件挂载到容器内部指定目录时遇到的403错误,并提供了解决方案和详细的操作步骤。 ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • 本文详细介绍了Python编程语言的学习路径,涵盖基础语法、常用组件、开发工具、数据库管理、Web服务开发、大数据分析、人工智能、爬虫开发及办公自动化等多个方向。通过系统化的学习计划,帮助初学者快速掌握Python的核心技能。 ... [详细]
  • 作者:守望者1028链接:https:www.nowcoder.comdiscuss55353来源:牛客网面试高频题:校招过程中参考过牛客诸位大佬的面经,但是具体哪一块是参考谁的我 ... [详细]
  • 在Python开发过程中,随着项目数量的增加,不同项目依赖于不同版本的库,容易引发依赖冲突。为了避免这些问题,并保持开发环境的整洁,可以使用Virtualenv和Virtualenvwrapper来创建和管理多个隔离的Python虚拟环境。 ... [详细]
  • PostgreSQL 10 离线安装指南
    本文详细介绍了如何在无法联网的服务器上进行 PostgreSQL 10 的离线安装,并涵盖了从下载安装包到配置远程访问的完整步骤。 ... [详细]
  • 本文介绍如何在Linux Mint系统上搭建Rust开发环境,包括安装IntelliJ IDEA、Rust工具链及必要的插件。通过详细步骤,帮助开发者快速上手。 ... [详细]
  • 深入理解Shell脚本编程
    本文详细介绍了Shell脚本编程的基础概念、语法结构及其在操作系统中的应用。通过具体的示例代码,帮助读者掌握如何编写和执行Shell脚本。 ... [详细]
author-avatar
PHP_sunshine
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有