AI时代, XI - 写给非软件从业者的Claude Code应用场景二:复制文件夹
前置文章:
Part I:AI时代, VII - 写给非软件从业者的Claude Code应用场景一:整理图片,Part I
Part II:AI时代, VIII - 写给非软件从业者的Claude Code应用场景一:整理图片,Part II
Part III:AI时代, IX - 写给非软件从业者的Claude Code应用场景一:整理图片,Part III
Part IV:AI时代, IX - 写给非软件从业者的Claude Code应用场景一:整理图片,Part IV
本篇介绍另外一个比较常用却比较容易被忽略的事情——复制文件夹。说到复制文件夹,很多人的反应肯定是,这不就是一个Ctrl+C和Ctrl+V的事情吗?但是如果你想复制一个源码目录的话,可能就没有那么简单了。又有人会说,什么年代了,为啥不走代码控制呢?是,确实可以走代码控制,但是那些不进代码的东西呢?譬如说,输入的密码这些,故意被写入gitignore呢?与其花费大量时间再去重新整备所有的这些放不进代码管理的文件,为什么不直接复制可以复制而放弃那些不可以复制的东西呢?
说到这里,就需要看看,到底什么是可以复制,而什么是不可以复制的?
基于项目类型的不同,简单描述下: - Node.js项目。对于Node.js的项目而言,node_modules文件夹通常无需复制(因为众所周知的原因无法正常从npm拉取的除外),不仅仅是因为其体量巨大,更因为其文件通常都是细小繁杂。复制过文件的都知道,复制大文件是比较快的,而批量复制小文件,真的是一件让人抓狂的事情。 - Python项目。对于Python项目而言,通常virtual environment文件夹(大部分命名为.venv或者venv)是不需要复制的。 - .Net项目。对于.Net项目而言,其bin文件夹和object文件夹通常都不需要复制。
上述只是软件开发项目中一些常见的规则,但是对于非软件从业者来说,可能软件开发项目不多见,但是,其道理是共通的,无论什么样的文件夹,总有一些是需要被迁移的(即需要被复制的)已经需要被放弃的(即需要被删除的)。
凡此种种,写这么一个skill就很有意思了:
- 第一步是,按照一个既定规则,哪些要留下,哪些要忽略。
- 第二步是,是不是需要将文件夹加压(只针对保留的部分)。
- 第三步是,复制到目标文件夹。
- 第四步是,根据第二步是不是需要压缩,决定需不需要自动解压。