最近发现之前写好的shell脚本里cp命令拷贝文件夹,丢失了一层文件夹。才发现cp命令里还有一层这么容易让人混淆的用法,为避免继续踩坑,特此记载。

现在假定文件存在的目录如下面所示:

--from

--from/fone

--from/fone/hello.txt

--to

现要将from文件夹之下的所有目录拷贝到to文件夹之下,使用时就会遇到极易混淆的如下4条命令:cp -rf from/ to

cp -rf from/ to1

cp -rf from/* to

cp -rf from/* to1

第一种:cp -rf from/ to

from整个文件夹都拷贝到to文件夹里去了。

--to

--to/from

--to/from/fone

--to/from/fone/hello.txt

第二种:cp -rf from/ to1

to1代表本来不存在的文件夹。

结果:

from文件夹没有拷贝到to里面去。

--to1

--to1/fone

--to1/fone/hello.txt

第三种:cp -rf from/* to

结果:

和第二种一样,没有复制from文件夹到to文件夹里面去。

--to

--to/fone

--to/fone/hello.txt

第四种:cp -rf from/* to1

结果:

to1下只有最里层的文件。

--to1

--to1/hello.txt

经过实践,上面命令格式可以统一为:cp -rf source target

无论target后面带不带斜杠/,系统都认为它是目录。

不相信你就这样试一下:cp -rf from to1.txt

查看to1.txt文件属性,就是文件夹。

总结:cp -rf source target 命令中target一定是文件夹

由以上4种情况可以得知,当业务中目标文件夹可能存在或不存在时,没有哪一条命令是在两种情况下可以同时使用的,最好的解决办法就是确保目标文件夹一定存在。

拿上面的例子来说,就是拷贝from里面的文件夹之前,先把to文件夹生成好。mkdir -p to

以上4种易混淆的命令,为了加深记忆,我也顺便总结了一下:记忆诀窍:

source里带*的一定是不包含source当前这一层文件夹的。

source里带*的,且target目标目录不存在的,是最特殊的情形:只拷贝最里层的文件。

综上所述,拷贝文件夹的业务,我们以后就通过两条命令的思路来实现就完全OK了。

1.不拷贝source里当前的目录到target里去,即不拷贝from文件夹到to里面:mkdir -p to

cp -rf from/* to

2.要拷贝source里当前的目录到target里去,即to里面要有from这一层文件夹:mkdir -p to

cp -rf from/ to

2019年11月23日 23:07文章创建

2019年11月23日 23:44文章发布

2019年11月24日 15:59文章下架

2019年11月24日 15:59文章发布

linux cp拷贝一个文件到另一个目录,cp命令复制文件夹到另一个文件夹的注意事项 - 翟码农技术博客...相关推荐

  1. 从 0 开始搭建一个技术博客,私藏干货~

    2019独角兽企业重金招聘Python工程师标准>>> 技术博客的选型有很多种,如:博客园.CSDN.开源中国.简书.知乎等--都可以用来写文章,形成自己的技术博客. 上面的博客都是 ...

  2. 技术人如何利用 github+Jekyll ,搭建一个独立免费的技术博客

    上次有人留言说,技术博客是程序员的标配,但据我所知绝大部分技术同学到现在仍然没有自己的技术博客.原因有很多,有的是懒的写,有的是怕写不好,还有的是一直想憋个大招,幻想做到完美再发出来,结果一直胎死腹中 ...

  3. 不花钱不费力,Hexo + GitHub 五分钟教你免费搭一个高逼格技术博客

    引言 作为程序员拥有一个属于自己的个人技术博客,绝对是百利无一害的事,不仅方便出门装b,面试时亮出博客地址也会让面试官对你的好感度倍增.经常能在很多大佬的技术文章的文末,看到这样一句话: " ...

  4. 【搬家】写一个技术博客

    写一个技术博客 ByNightmare 2011-07-16 @Xinxiang 这是一个大四的暑假--其实已经不是大四了,也谈不上暑假,不过离公司报道还有半个月时间,暂时在家休息--忽然想写一个技术 ...

  5. linux给文件夹腹权限,文件的权限_腹有诗书气自华的技术博客_51CTO博客

    1.文件与目录属性 # ls -l filename###文件属性查看 -rwxr-xr-x.2rootroot     6Oct  2 09:42file 第一列:文件类型和文件权限 如果这一位上有 ...

  6. linux实验试题 cp,51CTO博客-专业IT技术博客创作平台-技术成就梦想

    刚学习"cp"命令,不会使用,不知如何是好,到底怎样能复制正确,怎样会出错,很多疑问,还是做个实验证明一下吧! 1.在/ab下创建1.txt,在/cd下创建2.txt,在/ef下创 ...

  7. linux find查找文件然后删除,linu查找find命令及删除7天前的文件

    在/ l o g s目录中查找更改时间在7日以前的文件并删除它们: $ find logs/ -type f -mtime +7 -exec rm -f {} \; 在/ l o g s目录中查找更改 ...

  8. linux sftp一次下载多个文件,scp或sftp使用单个命令复制多个文件

    scp或sftp使用单个命令复制多个文件 我想将文件从/向远程服务器复制到不同的目录中.例如,我想一次运行这4个命令. scp remote:A/1.txt local:A/1.txt scp rem ...

  9. 荣新linux培训,51CTO博客-专业IT技术博客创作平台-技术成就梦想

    切换用户 su - root 文件夹管理   mkdir(新建文件夹)  rmdir(删除空目录) 文件管理     touch(新建文件)  rm(删除文件)rm -rf(删除文件夹)   cat( ...

最新文章

  1. WSL的openssh-server使用报错:Could not load host key: /etc/ssh/ssh_host_rsa_key
  2. grep, sed, awk
  3. python单词意思-python实现单词本功能
  4. stata中计算公式命令_珠联璧合:把Jupyter Notebook 作为stata的IDLE
  5. Linux 服务器如何修改主机名
  6. 字符串和数字之间的转化
  7. Linux下主DNS与辅助DNS的配置(上)
  8. SQL Server大数据表的分区存储
  9. SAP License:最近解决的一些SAP问题
  10. 读书笔记_打开量化投资的黑箱01
  11. 蓝牙学习笔记(十)——BLE透传传输延迟分析
  12. 【解题报告】动态规划进阶题(区间DP、树形DP、状压DP入门)
  13. 特征提取算法 知乎_对话 | 港科大教授权龙:为什么三维重建才是计算机视觉的灵魂?...
  14. 【深度学习笔记】(一)Octave
  15. E-prime基本介绍
  16. CSS 图像居中对齐
  17. 《 warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失》
  18. 几乎所有编程语言的hello, world程序(1)
  19. matlab contour3函数,matlab 等值线函数 contour
  20. 一个程序员心态决定成败

热门文章

  1. Acwing周赛57-数字操作-(思维+分解质因数)
  2. GO 语言中模板渲染的原理
  3. java可视化界面背景图_Java界面:java设置背景图片
  4. ACL’21 | 对话系统也要进军多模态了!
  5. anemometer mysql_MySQL慢日志简介及Anemometer工具介绍
  6. Openwrt MT7628/MT7620/MT7621——GPIO及LED/KEY的功能实现
  7. python提取word目录_python批量提取word内信息
  8. pycharm python interpreter是空的
  9. 台湾评论大陆量子计算机,台湾媒体盛赞大陆工业科研水平 称台湾人对大陆懵懂无知...
  10. java计算器sqrt_比较完整的Java计算器