入门

第 2

不再害怕文件和目录

最安全的节奏很简单:先看 再改 改完再看。

用“树”思考,而不是用“窗口”思考

项目本质上就是目录和文件组成的树。md 创建目录,mf 创建文件,dir 显示树。像 project/notes/ideas.txt 这样明确的路径,几个月以后仍然容易读懂。

从空目录搭一个小项目

分别建立资源、配置和笔记目录,然后立刻用 dir 查看结果。输出就是你用来确认“实际结构”和“预期结构”一致的依据。

cd lil-playground
md project | md project/assets | md project/config | md project/notes
mf project/notes/ideas.txt | mf project/config/app.ini
dir 3 project -G -a

修改之前先检查

stat 描述某一个路径,dir 展示它周围的结构。目标路径很重要时,先用这两类信息补足上下文。

stat project/notes/ideas.txt
dir 2 project -G -a

复制、移动、改名是三种不同意图

copy 保留源文件,mov 改变位置,ren 改变名字。每次操作后都重新看一次目录树,直到执行前你已经能预测结果。

copy project/notes/ideas.txt project/notes/ideas.copy.txt
ren project/notes/ideas.copy.txt ideas-archive.txt
md project/archive
mov project/notes/ideas-archive.txt project/archive

在项目里搜索,不要一层层打开目录

find 可以在指定路径下搜索名称、文件、目录或正文。先在练习项目里做窄范围搜索;同样的思路以后可以直接放大到大型代码库。

find ideas -f -p project
find app -f -e ini -p project/config
find archive -F -p project

删除要有自己的仪式

先创建可丢弃的 project/tmp,确认内容,再递归删除。对于破坏性操作,明确核对目标永远比节省几秒钟更重要。

md project/tmp | mf project/tmp/throw-away.txt
dir 2 project/tmp -G -a
del project/tmp -r

项目骨架本身就是自动化

如果每个项目都建立同样的目录,就把已经验证过的步骤保存成 .lil。以后可以继续加入配置、压缩、上传和检查。

把它保存成脚本

保存为 project-skeleton.lil。它创建一个小而可预测的项目结构,下一个项目只需要调整真正不同的部分。

#lil
@install md mf dir stat copy ren mov find
cd lil-playground
md project
md project/assets
md project/config
md project/notes
mf project/notes/ideas.txt
dir 3 project -G -a