本文主要关注高效SHELL环境中目录与文件的相关操做。python
可以快速定位目录的脚本项目不少,比较热门的项目是:linux
这几个项目功能都很是相似。装一个就能够了。以autojump
为例子。首先经过git
$: brew install autojump
复制代码
进行安装。完成安装后,在oh-my-zsh
中开启相应的插件autojump
。测试其经常使用操做:github
j
快速跳转到指定目录jc
快速跳转到指定子目录jo
快速经过图形界面打开目录经过j -s
查询缓存的检索目录优先级。web
常规进行目录展现的命令是ls
,但其太过单薄,特别是对于嵌套较深子目录,要进行屡次操做才能达到预期效果。这里介绍两个扩展命令:正则表达式
MacOS安装:shell
$: brew install tree
$: brew install exa
复制代码
tree
命令功能比较单一, exa
除了支持tree
命令的功能外,在色彩展现以及文件详情上展现的信息更加丰富。vim
为了方便本身使用,按各人喜爱定义别名。缓存
对于文件的定位以及操做,应该尽可能的靠近文件的位置,减小比必要的检索范围。在SHELL环境中一般所谓查询都是进行正则匹配。因此熟悉正则表达式很是重要。收集的如下正则表达式的教程很是适合全部级别的读者:bash
fd
命令是对find
命令的扩展。其在功能上与find
命令相似,但操做接口更加友好。
fasd
是将autojump
命令原理扩展到了文件上,固然它也支持目录。autojump
提供了关键的跳转命令j
; fasd
则提供四个关键命令:
f
文件快速检索a
文件 + 目录快速检索s
交互选择检索d
目录快速检索按文件内容检索系统提供的命令grep
太古老,不管是展现上仍是操做接口上都不够友好。如下扩展命令明显更加易于使用, 并且会在查询文件时使用 .gitignore
中的规则.
具体操做演示,能够经过 tldr
或 man
命令查询一下。
文件操做按行为可划分为: 文件预览、文件编辑、文件删除。按此类型划分,分别列举几个扩展命令。
文件预览
文件编辑
文件编辑命令实在太多了,有人喜欢 IDE, 有人喜欢命令行。贴一篇文章,不少编辑工具都罗列了。
删除文件
其实文件删除命令,系统提供的 rm
命令就很是好用。但该命令风险很高,万一一个不当心删错了就没有回头路了。因此有人写了下面这个工具:
提供的功能挺好的:
trash-put trash files and directories.
trash-empty empty the trashcan(s).
trash-list list trashed files.
trash-restore restore a trashed file.
trash-rm remove individual files from the trashcan.
复制代码
只是这个工具使用python写的安装过程有点费事,改天本身写一个纯SHELL版本。
快速定位目录或者文件,再执行相应的操做,已经够快了。若是还想更快一点,推荐下面这个工具:
它能够将检索与操做两个过程直接关联起来。先看一张预览图:
两个简单的使用例子:
# 预览
$: fzf --preview 'bat {}'
# 定位文件后,按F1开启编辑工具
$: fzf --bind 'f1:execute(vim {})'
复制代码
高效SHELL须要大量的实践练习,和对旧习惯的抛弃。相关文章: