linux中cp命令的常见用法 您所在的位置:网站首页 cp感情是什么意思 linux中cp命令的常见用法

linux中cp命令的常见用法

2024-07-11 20:58| 来源: 网络整理| 查看: 265

本篇博客来讨论linux中cp命令。

cp命令用来复制文件或文件夹。它主要有两种形式

# 用法一:复制一个文件 $ cp [option] src-file target-file # 用法二:复制多个文件,目标是一个文件夹 $ cp [option] src-file1 src-file2 ... target-directory

如果一次复制多个文件的话,target必须是一个文件夹。

下面是几个常用的选项 - -r --recursive 递归复制,会复制文件夹内部的文件夹,自动创建目标位置不存在的文件夹。多用于目录的复制 - -p 连同属性一起复制,而不是使用默认的属性 - -d 若src-file属于link file,则复制为link file,而非文件本身 - -a --archive 等同于-prd,常用于文件备份 - -i --interactive 若目标文件以存在,则在覆盖前询问是否覆盖 - -u --update 若源文件比目标文件新,则覆盖,否则跳过 - -f --force 强制复制 - -s -symbolic-link 复制为符号链接文件,即快捷方式文件,俗称软连接 - -l --link复制为硬连接文件

cp命令除了简单的复制文件以外,还有几个比较常用的场景,分别是:备份文件,更新文件夹中的内容,创建快捷方式等,下面我们来简单地模拟一下。 准备工作:创建一个src文件夹,里面有三个文件,分别是:a.txt,b.txt,c.sh,使用ls -l命令的输出是

$ ls -al total 12 drwxrwxr-x. 2 kite kite 4096 9月 24 10:03 . drwxr-xr-x. 4 kite kite 4096 9月 24 10:02 .. -rw-rw-r--. 1 kite kite 0 9月 24 10:02 a.txt -rw-rw-r--. 1 kite kite 0 9月 24 10:02 b.txt -rwxrwxr-x. 1 kite kite 19 9月 24 10:03 c.sh

c.sh是一个bash脚本,里面只有一句话,echo 'hello,world'。 如果你的c.sh文件没有执行权限,则使用chmod a+x c.sh来赋予它可执行的权限

使用cp进行备份

首先尝试将src文件夹备份为src-backup文件夹,运行下面的命令

$ cp src src-backup cp: -r not specified; omitting directory 'src'

按照提示,我们应该加上-r参数,那就加上这个参数再试一次,成功了,仔细看一下src和src-backup文件夹内的文件

$ ls -l src src-backup/ src: total 4 -rw-rw-r--. 1 kite kite 0 9月 24 10:02 a.txt -rw-rw-r--. 1 kite kite 0 9月 24 10:02 b.txt -rwxrwxr-x. 1 kite kite 19 9月 24 10:03 c.sh src-backup/: total 4 -rw-rw-r--. 1 kite kite 0 9月 24 10:11 a.txt -rw-rw-r--. 1 kite kite 0 9月 24 10:11 b.txt -rwxrwxr-x. 1 kite kite 19 9月 24 10:11 c.sh

会发现三个文件的创建时间不一样了。很显然,文件备份成这样是不太行的。其实,备份文件最常用的参数是-a。让我们删掉src-backup文件夹,再试一次

$ rm -rf src-backup/ $ cp -a src src-backup $ ls -l src src-backup/ src: total 4 -rw-rw-r--. 1 kite kite 0 9月 24 10:02 a.txt -rw-rw-r--. 1 kite kite 0 9月 24 10:02 b.txt -rwxrwxr-x. 1 kite kite 19 9月 24 10:03 c.sh src-backup/: total 4 -rw-rw-r--. 1 kite kite 0 9月 24 10:02 a.txt -rw-rw-r--. 1 kite kite 0 9月 24 10:02 b.txt -rwxrwxr-x. 1 kite kite 19 9月 24 10:03 c.sh

这次的文件时间都一致了,备份完成!

使用cp更新文件夹中的内容

将a.txt中的内容随便修改一下,然后,我们再来备份一次。对比一下src文件夹下的a.txt和src-backup文件夹下的a.txt的时间

$ ls -l src/a.txt src-backup/a.txt -rw-rw-r--. 1 kite kite 14 9月 24 14:32 src/a.txt -rw-rw-r--. 1 kite kite 0 9月 24 10:02 src-backup/a.txt

可以看出来src/a.txt的时间更新 接下来通过-u参数来将更新后的a.txt备份到src-backup文件夹下

cp -u src/* src-backup/

查看一下修改时间

ls -l src src-backup/ src: total 8 -rw-rw-r--. 1 kite kite 24 9月 24 14:32 a.txt -rw-rw-r--. 1 kite kite 0 9月 24 10:02 b.txt -rwxrwxr-x. 1 kite kite 19 9月 24 10:03 c.sh src-backup/: total 8 -rw-rw-r--. 1 kite kite 24 9月 24 14:32 a.txt -rw-rw-r--. 1 kite kite 0 9月 24 10:02 b.txt -rwxrwxr-x. 1 kite kite 19 9月 24 10:03 c.sh

可以看出来,备份文件已经更新了 还可以指定-i参数,在替换之前会询问是否继续。

创建快捷方式

src目录下有一个c.sh脚本,如果希望在任何地方都能运行它,通用的方法是在/usr/bin下面创建一个快捷方式。

$ cd /usr/bin/ $ sudo cp -s ~/Demos/src/c.sh c

创建快捷方式的话,需要先进入目标文件夹内。我将src下的c.sh脚本创建了一个快捷方式c,从任何一个终端位置都可以直接运行c这个命令。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有