Shell/Bash在线运行

所属目录
点击了解高性能代码运行API
运行结果
教程手册
代码仓库
极速运行
终端运行
图形+终端

                        
以下是用户最新保存的代码
测试代码功能 发布于:2024-10-25 10:47 大大飒飒法 发布于:2024-10-24 22:18 shell 字符串比较大小 发布于:2024-10-23 15:05 shell测试代码 发布于:2024-10-23 11:59 测试二进制文件读写 发布于:2024-10-17 15:01 这是测试代码 发布于:2024-10-09 18:42 Linux 服务器一键安装部署脚本 发布于:2024-09-11 14:27 测试shell语言压缩文件的 发布于:2024-09-09 11:18 ping脚本 发布于:2024-08-25 23:16 这是我的测试代码 发布于:2024-06-22 15:34 vps一键脚本 发布于:2024-05-15 22:42 玩家获得客户丢货 发布于:2024-05-09 11:25 参数传递测试 发布于:2024-04-24 18:41 目录查找删除 发布于:2024-04-16 11:43 shell脚本学习 发布于:2024-03-07 16:03 bash zndf判断 发布于:2024-03-06 10:23 #### 实验1.1验证输入密码脚本 发布于:2024-03-05 20:16 rm -f测试程序 发布于:2024-03-05 17:40 shell保存简悦导出的markdown文件 发布于:2024-03-03 15:22 grep 三个命令递进组合 发布于:2024-02-28 17:41 if+单大括号 发布于:2024-02-22 15:18 cp拷贝文件 发布于:2024-02-22 14:48 shell脚本编辑学习 发布于:2024-02-20 09:24 shell脚本 发布于:2024-01-26 20:43 学习shell 发布于:2024-01-23 17:31 此脚本检测ChIP-seq样本是否input和IP匹配 发布于:2024-01-17 13:38 一键运行脚本 发布于:2024-01-13 21:37 单点进程与图形声音进程 发布于:2024-01-12 14:58 随机生成10个不相同的整 发布于:2023-12-08 10:18 game color 发布于:2023-12-04 20:01 打印等边三角形 发布于:2023-11-28 20:00 shell计算器 发布于:2023-11-22 17:22 重启执行docker 发布于:2023-11-21 10:57 测试数据局 发布于:2023-10-19 17:06 查询被封禁ip 发布于:2023-09-19 16:37 shell减法函数 发布于:2023-09-13 10:57 centos7测试tomcat服务是否正常运行 发布于:2023-09-13 10:25 shell-study 发布于:2023-09-06 15:06 just for shell script learn 发布于:2023-09-01 09:34 测试Shell参数传递 发布于:2023-08-24 11:27 对cdh6进行自动化安装 发布于:2023-08-23 10:10 安装zookeeper 发布于:2023-08-14 18:32 安装mongo 发布于:2023-08-11 17:40 容器安装mysql 发布于:2023-08-04 15:19 最后的最后把它搞定 发布于:2023-08-03 14:32 shell测试 发布于:2023-08-01 16:07 Shell 代码验证 发布于:2023-07-24 15:25 shell测试程序 发布于:2023-07-23 22:31 shell函数5-4 while循环 发布于:2023-07-20 10:56 shell的demo 发布于:2023-07-17 23:14 [更多]
显示目录

cp 命令-复制文件和目录



学习嵌入式的绝佳套件,esp8266开源小电视成品,比自己去买开发板+屏幕还要便宜,省去了焊接不当搞坏的风险。 蜂鸣版+触控升级仅36元,更强的硬件、价格全网最低。

点击购买 固件广场

cp 命令

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

复制文件和目录,同时借助某些选项,还可以实现复制整个目录,以及比对两文件的新旧而予以升级等功能。

cp 命令的基本格式如下:

[root@localhost ~]# cp [选项] 源文件 目标文件
选项 作用
-a: 相当于 -d、-p、-r 选项的集合,我们将逐一介绍;
-d: 如果源文件为软链接(对硬链接无效),则复制出的目标文件也为软链接;
-i: 询问,如果目标文件已经存在,则会询问是否覆盖;
-l: 把目标文件建立为源文件的硬链接文件,而不是复制源文件;
-s: 把目标文件建立为源文件的软链接文件,而不是复制源文件;
-p: 复制后目标文件保留源文件的属性(包括所有者、所属组、权限和时间);
-r: 递归复制,用于复制目录;
-u: 若目标文件比源文件有差异,使用该选项可以更新目标文件

cp 命令基本用法

cp 命令既可以复制文件,也可以复制目录

例如:

[root@localhost ~]# touch cangls
#建立源文件
[root@localhost ~]# cp cangls /tmp/
#把源文件不改名复制到 /tmp/ 目录下

如果需要改名复制,则命令如下:

[root@localhost ~]# cp cangls /tmp/bols
#改名复制

复制的目标位置存在同名的文件,则会提示是否覆盖

例如:

[root@localhost ~]# cp cangls /tmp/
cp:是否覆盖"/tmp/cangls"?y
#目标位置有同名文件,所以会提示是否覆盖

复制目录只需使用“-r”选项即可,例如:

[root@localhost ~]# mkdir movie
#建立测试目录
[root@localhost ~]# cp -r /root/movie/ /tmp/
#目录原名复制

复制软链接文件

如果源文件是一个软链接文件,是否可以复制软链接的属性

[root@localhost ~]# ln -s /root/cangls /tmp/cangls_slink
#建立一个测试软链接文件/tmp/cangls_slink
[root@localhost ~]# ll /tmp/cangls_slink
lrwxrwxrwx 1 root root 12 6 月 14 05:53 /tmp/cangls_slink -> /root/cangls
#源文件本身就是一个软链接文件
[root@localhost ~]# cp /tmp/cangls_slink /tmp/cangls_t1
#复制软链接文件,但是不加"-d"选项
[root@localhost ~]# cp -d /tmp/cangls_slink /tmp/cangls_t2
#复制软链接文件,加入"-d"选项
[root@localhost ~]# ll /tmp/cangls_t1 /tmp/cangls_t2
-rw-r--r-- 1 root root 0 6月 14 05:56 /tmp/cangls_t1
#会发现不加"-d"选项,实际复制的是软链接的源文件,而不是软链接文件
lrwxrwxrwx 1 root root 12 6 月 14 05:56/tmp/ cangls_t2-> /root/cangls
#而如果加入了"-d"选项,则会复制软链接文件

注意:"-d" 选项对硬链接是无效的。

保留源文件属性复制

在执行复制命令后,目标文件的时间会变成复制命令的执行时间,而不是源文件的时间。

例如:

[root@localhost ~]# cp /var/lib/mlocate/mlocate.db /tmp/
[root@localhost ~]# ll /var/lib/mlocate/mlocate.db
-rw-r-----1 root slocate2328027 6月 14 02:08/var/lib/mlocate/mlocate.db
#注意源文件的时间和所属组
[root@localhost ~]#ll /tmp/mlocate.db
-rw-r----- 1 root root2328027 6 月 14 06:05/tmp/mlocate.db
#由于复制命令由root用户执行,所以目标文件的所属组为了root,而且时间也变成了复制命令的执行时间

当我们执行备份、曰志备份时,这些文件的时间可能是一个重要的参数

执行 "-p" 选项,会保留源文件的属性,包括所有者、所属组和时间。

例如:

[root@localhost ~]# cp -p /var/lib/mlocate/mlocate.db /tmp/mlocate.db_2
#使用"-p"选项
[root@localhost ~]# ll /var/lib/mlocate/mlocate.db /tmp/mlocate.db_2
-rw-r----- root slocate 2328027 6月 14 02:08 /tmp/mlocate.db_2
-rw-r----- root slocate 2328027 6月 14 02:08 /var/lib/mlocate/mlocate.db
#源文件和目标文件的所有属性都一致,包括时间

"-l" 和 "-s" 选项

"-l" 和 "-s" 选项的源文件只需是普通文件,目标文件可以直接复制为硬链接和软链接。

例如:

[root@localhost ~]# touch bols
#建立测试文件
[root@localhost ~]# ll -i bols
262154-rw-r--r-- 1 root root 0 6月 14 06:26 bols
#源文件只是一个普通文件,而不是软链接文件
[root@localhost ~]# cp -l /root/bols /tmp/bols_h
[root@localhost ~]# cp -s /root/bols /tmp/bols_s
#使用"-l" 和"-s"选项复制
[root@localhost ~]# ll -i /tmp/bols_h /tmp/bols_s
262154-rw-r--r-- 2root root 0 6 月 14 06:26/tmp/bols_h
#目标文件 /tmp/bols_h 为源文件的硬链接文件
932113 lrwxrwxrwx 1 root root 10 6 月 14 06:27/tmp/bols_s -> /root/bols
#目标文件 /tmp/bols_s 为源文件的软链接文件
由JSRUN为你提供的Shell/Bash在线运行、在线编译工具
        JSRUN提供的Shell/Bash 在线运行,Shell/Bash 在线运行工具,基于linux操作系统环境提供线上编译和线上运行,具有运行快速,运行结果与常用开发、生产环境保持一致的特点。
yout