本文主要關注高效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須要大量的實踐練習,和對舊習慣的拋棄。相關文章: