如何高效回退到特定層級目錄?

来源:https://www.cnblogs.com/yychuyu/archive/2020/05/29/12989158.html
-Advertisement-
Play Games

Linux 下如果我們進入到了一個比較長的路徑,比如: /home/alvin/projects/blogdemos/linux-system-programming/thread /home/alvin/projects/blogdemos/diff /home/harry/study/亞洲文化/ ...


Linux 下如果我們進入到了一個比較長的路徑,比如:

/home/alvin/projects/blogdemos/linux-system-programming/thread
/home/alvin/projects/blogdemos/diff
/home/harry/study/亞洲文化/日本文化/中日交流/影視業/動作片

如果我們想要回退到一個特定的父目錄,那麼我們通常的做法是這樣敲:

$ cd ../../../

如果層級比較少,那這樣勉強還可以接受,但如果層級很深,那可能就會 cd 到你懷疑人生了。

本文將介紹一個工具,它能幫你快速進入到某一個特定的父目錄,而無需一路 cd 。你可以直接指定回退的層級數,或者要回退的目標目錄,非常方便。

更重要的是,它甚至還支持 tab 鍵,而且在不重覆的情況下,你也可以指定目標目錄的前幾個字母即可,大大增加了工作效率。

這個工具其實就是個 shell 腳本,名字是 up.sh ,除了支持 bash 外,對 zsh 和 fish shell 的支持也很好。

up 腳本的安裝

這個腳本是第三方人員開發的,所以需要我們人為安裝到我們的系統。

首先,我們需要先將 up.sh 下載到我們本地,然後再使能這個腳本:

$ curl --create-dirs -o ~/.config/up/up.sh https://raw.githubusercontent.com/shannonmoeller/up/master/up.sh

$ echo 'source ~/.config/up/up.sh' >> ~/.bashrc

之後再使用以下命令使改動生效:

$ source ~/.bashrc

如果你使用的是 zsh shell ,那麼需要使用下列步驟去操作:

$ curl --create-dirs -o ~/.config/up/up.sh https://raw.githubusercontent.com/shannonmoeller/up/master/up.sh

$ echo 'source ~/.config/up/up.sh' >> ~/.zshrc

$ source ~/.zshrc

如果你使用的是 fish shell ,那你需要這麼操作:

$ curl --create-dirs -o ~/.config/up/up.fish https://raw.githubusercontent.com/shannonmoeller/up/master/up.fish

$ source ~/.config/up/up.fish

up 腳本的使用

按照以上步驟操作,我們就能將 up 腳本安裝到系統並完成配置。接下來我們就可以用它來盡情地玩耍了。

首先,我們先明確自己所處的路徑:

$ pwd
/home/alvin/projects/atb4g/ecall/src/interface

如果我們只想回到上級目錄,只需執行 up 即可。

$ up
$ pwd
/home/alvin/projects/atb4g/ecall/src

那如果我想回退到更高層級的目錄呢?我現在是在 src 目錄,如果我想回退到 projects 目錄,要怎麼操作?

我們只需要 up 命令後跟上你要跳轉的層級數,不加的話就預設是 1 。在這個例子里,我們要回退 3 層目錄,即:

$ up 3
$ pwd
/home/alvin/projects

前面已經提到,我們可以直接回退到某一個指定的目錄名下。比如我現在還是在 src 目錄,想要回退到 projects 目錄,我們可以這樣操作:

$ pwd
/home/alvin/projects/atb4g/ecall/src
$ up projects
$ pwd
/home/alvin/projects

如果要回退的單詞長度太長寫得太累怎麼辦?你只需指明這個目錄的前幾個字母, up 腳本就會識別並跳轉。

$ pwd
/home/alvin/projects/atb4g/ecall/src
$ up pr		# 這裡只指定了前兩個字母
$ pwd
/home/alvin/projects

同時,它也支持 tab 鍵:

$ pwd
/home/alvin/projects/atb4g/ecall/src
$ up	# 敲 tab 鍵
ecall/	atb4g/	projects/	alvin/	home/

小結

這個腳本在經常需要切換目錄,並且路徑又很長的情況下,非常有用,能夠快速進入到你想要的父目錄。好好使用這個腳本,將會在目錄切換時大大提高你的效率。

最後,最近很多小伙伴找我要Linux學習路線圖,於是我根據自己的經驗,利用業餘時間熬夜肝了一個月,整理了一份電子書。無論你是面試還是自我提升,相信都會對你有幫助!目錄如下:

免費送給大家,只求大家金指給我點個贊!

鏈接:https://pan.baidu.com/s/1_6uniaFV0rdMWIdMwgZjbg
提取碼:9pbc

也希望有小伙伴能加入我,把這份電子書做得更完美!

有收穫?希望老鐵們來個三連擊,給更多的人看到這篇文章


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 0. 前言 在前一篇中我們講到了Dapper的應用,但是給我們的感覺Dapper不像個ORM更像一個IDbConnection的擴展。是的,沒錯。在實際開發中我們經常用Dapper作為對EF Core的補充。當然了Dapper並不僅僅只有這些,就讓我們通過這一篇文章去讓Dapper更像一個ORM吧。 ...
  • (1):C#讀取DB文件 第一步 下載DLL文件並安裝 DLL下載地址https://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki 選用版本sqlite-netFx46-setup-bundle-x64-2015-1.0 ...
  • 幾種常見的加密方法的實現 1.ACSII碼加密 //ACSII碼加密 private static string ACSIIPWd(string rpwd) { string Ret; byte[] array = System.Text.Encoding.ASCII.GetBytes(rpwd); ...
  • 上一篇文章(https://www.cnblogs.com/meowv/p/12961014.html)集成了定時任務處理框架Hangfire,完成了一個簡單的定時任務處理解決方案。 本篇緊接著來玩一下AutoMapper,AutoMapper可以很方便的搞定我們對象到對象之間的映射關係處理,同時a ...
  • docker容器把資源抽象成對象;作為客戶端,docker這個命令其實就是在對這些抽象出來的資源對象做增刪查改的操作;docker的API是RESTful風格的API,所以它支持類似像http協議里的GET、POST、PUT、DELETE等操作;RESTful風格的API有這樣的特點;1、每一個U... ...
  • 樹莓派版本: Raspberry Pi 4B 操作系統 : Ubuntu Server 20.04_x64 使用 ip a 查看無線網卡名稱: ubuntu@ubuntu:~$ ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue st ...
  • 步驟說明: <步驟1:打開控制面板> <步驟2:設置日期,時間> 操作截圖: ...
  • 一、Ubuntu安裝: 為什麼用Ubuntu,作為伺服器初學者開發,如果真的要買蘋果系統電腦性價比不高,所以在window系統中安裝Linux虛擬機是不二之選。為什麼用Ubuntu不多說了,開始安裝吧。 以window 10 為例: 1)點擊控制面板->搜索"開發者設置"->設置開發者模式 2)點擊 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...