linux中在复制一个目录时cp -a 和cp -r有什么区别

作者&投稿:欧敬 (若有异议请与网页底部的电邮联系)
Linux中CP命令要咋复制文件到指定目录里~

你的意思是在脚本里面复制自身吧?如果是在脚本之外写一个cp复制太简单了。

如上图,cp 命令中$0是一个特殊变量,表示当前脚本文件名。

简单的办法是采用打包再解包
如:
cd /mnt/data/file.bk
tar cvf /tmp/bakfile.tar */*/csvZip
然后/mnt/www/html
tar xvf /tmp/bakfile.tar
只是这样要求磁盘空间要足够才可以!

另一种办法是写shell脚本进行操作
cd /mnt/data/file.bk
for dir in `find . -type d -name "csvZip"`
do
cp $dir/* /mnt/www/html/$dir
done

cp文件时候可以不用加参数,但是cp文件夹的时候必须加-R或-r,操作方法如下:

1、首先打开linux,使用cp的命令格式

2、这里移动文件1234.txt,ls -l//显示当前文件夹下所有文件的信息。

3、复制1234.txt文件到新文件2345.txt,copy 1234.txt 2345.txt,这里可以看到两个文件大小相同,时间戳不同。

4、复制1234.txt文件到新文件3456.txt并保持时间戳相同。

5、最后复制目录到新的目录需要加上选项-r,cp -r test python,就可以了。



先说结果:

cp -a : 递归复制,复制的数据会保留原有数据的时间戳等信息(具体:时间戳+所有权+复制连结文件属性而非档案本身)

cp -r : 递归复制,复制的数据会使用新的时间戳等信息

所有权:就是该文件属于哪个用户哪个组

复制连结文件属性而非档案本身:例如是软链接的话,复制的是软链接的属性(时间戳等信息),而不是实际文档的

比如:

cp -a test.sh test1.sh   

使用ls -l 查看:两者时间戳一致

cp -r test.sh test2.sh

使用ls -l 查看:两者时间戳不同

复制链接文件也是一样:

简单总结下:

使用cp -a 相当于将原数据原封不动的拷贝过来,不改变里面的任何信息

使用cp -r 拷贝数据,拷贝的结果是生成新的时间戳等信息

使用cp --help得知:

-a --archive                 等于-dR --preserve=all

具体什么意思呢?我来解释下:

-a效果上等同于 -d -p -R,也就是说 -a的效果是包括-r所有的功能。

其中:

-d  若来源文件为连结文件的属性(link file),则复制连结文件属性而非档案本身;

-p  连同档案的属性一起复制过去,而非使用预设属性;【核心区别】 

-R, -r, --recursive   递归持续复制,用于目录的复制行为; 

附录:cp属性大全

别吐槽图片模糊,百度要压缩我也没办法 T_T



-a 或 --archive 此参数的效果和同时指定"-dpR"参数相同
-r 递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
-R 或 --recursive 递归处理,将指定目录下的文件及子目录一并处理

$man cp
-a, --archive
same as -dR --preserve=all
-R, -r, --recursive
copy directories recursively

-d same as --no-dereference --preserve=links

--preserve[=ATTR_LIST]
preserve the specified attributes (default: mode,ownership,timestamps), if
possible additional attributes: context, links, xattr, all

不懂


linux复制目录文件到另一个目录linux复制目录及文件
1、连接上相应的linux主机,进入到等待输入shell指令的linux命令行状态下。2、在linux命令行下输入shell指令:cptest.txt.\/123\/xxx。3、最后,按下回车键执行shell指令,此时会看到test.txt被成功复制到了子文件夹.\/123\/xxx中。linux服务器怎么复制文件?Linuxcp(英文全拼:copyfile)命令主要用于复制...

linux怎么把一个文件的内容复制到另一个文件linux怎么把一个文件_百...
使用scp-r命令进行copy复制到另一台系统 linux里怎么把两个文件合并成一个文件?可以使用cat命令从文件中读入两个文件,然后将重定向到一个新的文件。用法示例:将file1.txt和file2.txt合并到file.txt catfile1.txtfile2.txt>file.txt 也可以只使用cat命令读入一个文件,然后使用>>将文本流追加到另...

终端基础:在 Linux 中复制文件和目录 | Linux 中国
复制多个目录时,只需在命令中列出所有需要复制的目录即可。同时,你还可以在复制过程中进行文件和目录的重命名练习。通过实践这些基本操作,你将更加熟悉Linux终端的文件管理。在接下来的内容中,你将学习如何移动文件和目录,继续你的Linux终端之旅。通过copy-files-...>获取更多详细教程,一起提升你的...

linux文件夹复制到另一个文件linux文件夹.复制
linux怎么复制文件到多个文件夹下?cp命令将文件复制到目录文件夹。如果需要复制一个文件到多个文件夹下,可以使用多条cp语句,或者使用shell脚本。用法示例:复制abc.txt到abcdef目录下$cpabc.txtab$cpabc.txtcd$cpabc.txtef脚本方式:复制abc.txt到abcdef目录下dirs=(abcdef)fordirin${dirs}docpabc....

linux复制内容到另一个文件
4、使用sed或awk命令:sed -n '2,4p'source_file>destination_file或awk'NR>1'source_file>destination_file,sed和awk是强大的文本处理工具,可以用来执行各种文本转换和编辑任务。5、使用文本编辑器:可以使用文本编辑器(如Nano、Vim或Emacs)打开源文件和目标文件,并将所需内容复制和粘贴到目标文件...

在LINUX如何用键盘复制,粘贴啊、
快捷键设置可以打开shell终端“Edit”菜单下的“Keyboard Shortcuts”进行,这里有一些默认的快捷键,当然也可以自定义快捷键,不过默认快捷键已成为一种操作习惯,比较通用,这里主要介绍默认的快捷键。 小提示:与Windows或者Linux下的文档系统相比,shell终端的快捷键一般要和Shift键组合起来使用,比如说复制...

linux复制整个文件夹命令
linux系统下复制整个文件夹命令是什么呢?下面是复制整个文件夹命令的具体介绍:linux系统下复制整个文件夹命令是:cp

Linux复制linux下复制
3、mount到某一个地方,即挂载到主磁盘下某个地方。mount\/dev\/sdb1(sdb几看U盘挂载情况)\/mnt 4、cp要复制的文件路径\/mnt 5、待复制完成后,umount\/mnt即可,此时U盘上已经有要拷贝的文件。linux下复制文件需要什么样权限?cp在\/bin\/目录下,\/bin目录跟cp文件的所有者及用户组都是root,所以root...

在linux 下怎么将一个文件复制到另一个目录中
使用通配符可以匹配一个文件夹里的全部文件。4、如果dir2目录已存在,这时使用cp -r dir1 dir2,则也会将dir1目录复制到dir2中,明显不符合要求。ps:dir1、dir2改成对应的目录路径即可。5、对于刚开始使用linux系统的人来说,都不熟悉使用命令行,对于用命令行删除文件,这最基本的。

在Linux 上复制和重命名文件
在 Linux 系统中,文件复制和重命名的手段远不止 cp 和 mv 两个基本命令。本文将介绍一些更高效、灵活的替代方法,让你的文件操作更加得心应手。首先,复制文件方面,当需要批量操作时,tar 命令就显得更为高效。例如,你可以使用 "tar -czvf myfiles.tar .\/*.txt" 来压缩当前目录下所有.txt文件...

汉沽区17325621712: linux下怎么复制一个文件到另外一个目录并且重命名 -
尹劳阿思: 用Linux的cp命令复制文件,目标文件参数指定成一个新的文件名,就可以实现复制文件的同时重命名文件的功能,比如下面这条命令将/root/fileaaa赋值到/home目录下并重命名为filebbb: cp /root/fileaaa /home/filebbb

汉沽区17325621712: linux的cp命令怎么用阿?麻烦举个例子,我怎么老是复制不成功呢!? -
尹劳阿思: cp命令 该命令的功能是将给出的文件或目录拷贝到另一文件或目录中,同MSDOS下的copy命令一样,功能十分强大.语法: cp [选项] 源文件或目录 目标文件或目录说明:该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目...

汉沽区17325621712: linux中在复制一个目录时cp - a 和cp - r有什么区别
尹劳阿思: $man cp -a, --archive same as -dR --preserve=all -R, -r, --recursive copy directories recursively -d same as --no-dereference --preserve=links --preserve[=ATTR_LIST] preserve the specified attributes (default: mode,ownership,timestamps), if possible additional attributes: context, links, xattr, all

汉沽区17325621712: 什么叫递归式的复制?linux说命令cp时这么讲的, -
尹劳阿思: 递归式复制指的是当要复制的目录下存在子目录,且子目录中存在子目录或文件的时候,将逐一复制它们.windows的复制默认是这样的.如果不递归复制,结果你得到的目录只包含空的子目录,其子目录下的内容将不会复制.

汉沽区17325621712: linux中cp命令的 -- parents参数可以限制复制到哪个目录吗?还是只能复制到根目录 -
尹劳阿思: 这个参数是,保留源文件或目录的路径,该路径可以是绝对路径也可以是相对路径,并且目的路径的目录是必须存在的,也就是说,在进行复制时,要保留文件的目录结构.

汉沽区17325621712: Linux系统怎么复制文件夹下的全部文件到另外文件夹 -
尹劳阿思: linux中可以使用cp命令来进行文件的复制操作,如果需要将某个文件夹下全部文件(包括子文件夹)复制到另外一个文件夹,可以使用cp的-r参数:cp -ri A/B/* A1/B1/ 回车 若复制过程中询问是否覆盖,输入y按回车,若不想看到提示直接覆盖使...

汉沽区17325621712: linux下怎样把一个目录的子目录复制到当前目录中 -
尹劳阿思: Linux系统下复制命令为cp,但是cp不带参数只能复制文件,如果需要把一个目录下的子目录复制到当前目录,需要加参数-R递归操作,把目录下文件和子目录一并处理: 例如:把/mnt/zhidao子目录复制到当前/etc目录下 cp -R /mnt/zhidao /etc...

汉沽区17325621712: linux 怎么将文件拷贝到目录 -
尹劳阿思: copy ,cp,该命令的功能是将给出的文件或目录拷贝到另外一个文件或目录中. 语法: cp [选项] 源文件或目录 目标文件或目录 在Linux中复制文件夹下的全部文件到另外文件夹 例如;在/TEST目录下新建test1和test2两个子文件夹. 假设复制源...

汉沽区17325621712: linux命令中的cp和scp命令的区别? -
尹劳阿思: 一个是本地 , 一个是远程.1. cp 是普通的文件复制scp 是通过ssh 本机和其他电脑上的复制.2. scp是secure copy,也是一个复制命令,是与ssh有关的. scp user@ip:/dir/file file 或者:scp file user@ip:/dir/file 要输入user在远端用户的密码....

汉沽区17325621712: 如何将U盘上的文件复制到linux目录下 -
尹劳阿思: 将U盘上的文件复制到linux目录下涉及到cp以及mount等命令,下面先讲一个各个命令 1、 Linux 常用命令说明 cp <源地址> <目的地址> 该命令实现Linux下文件的拷贝功能,源地址为需要拷出文件的地址,目的地址为文件拷贝的目标地址. 例1...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网