2015-03-13

Ubuntu Linux 用資料夾堆疊快速操作多個資料夾

什麼是「資料夾堆疊 ( Directory Stack)」? 其實,阿舍在沒接觸過 dirs、pushd 和 popd 指令之前,阿舍也不知道哩 ! 雖然,阿舍之前就有看到過這個 dirs 指令,但是,阿舍一直沒有很清楚它是在做什麼用的,就以為用不到,所以,就沒去研究看看哩 ! 然後,這二天看到 pushd 和 popd 指令時,才好奇的研究了一下,才發現,原來 Ubuntu 和 Linux 上的資料夾可以這樣子用的哩 ! ...




在 Shell 的環境會有一個地方可以讓使用者來放入一些資料夾路徑方便做後續的操作,而這樣的一個地方就叫做「資料夾堆疊 ( Directory Stack)」,使用者可以用 dirs 指令來檢視資料夾堆疊的內容,然後,可以用 pushd 指令來放入,用 popd 指令來移出資料夾哩 ! 然後呢 ? 要怎麼用哩 ?

每一個被進資料夾堆疊的資料夾路徑都會有一個代號,只要用 ~+ 加上編號就以代表那個資料夾字串來使用,因此,你就可以用 ~+ 加編號的方式來當做資料夾使用,這樣就可以省打很多字哩 !

pushd 能塞的資料夾也會受權限控管

舉例來說,當阿舍要在 ~/src、/var/log、/var/www/arthurtoday.com/html 和 /etc/nginx/sites-available 等四個資料夾間作業時,阿舍可以用 pushd 指令把這些資料夾放進資料夾堆疊裡。

$ cd ~/src
$ pushd.
$ cd /var/log
$ pushd.
$ cd /var/www/arthurtoday.com/html
$ pushd.
$ cd /etc/nginx/sites-available

接著,阿舍用 dirs 指令來看一下,就可以看到用 pushd 指令放到資料夾堆疊的項目清單,要注意的是,每次有新的資料夾被加進來時,編號都會改變的哩 !

$ dirs -l -v
0 /var/log
1 /var/www/arthurtoday.com/html
2 /etc/nginx/sites-available
3 ~/src

然後,阿舍就可以用 ~+ 加編號的方式來使用堆疊裡的東西了哩 !

$ cd ~+2
$ pwd
/etc/nginx/sites-available

# 等同 cp /var/www/arthurtoday.com/html/index/html ~/src
$ cp ~+3/index.html ~+1

$ ls ~+0

如果資料夾路徑用不到之後,就可以用 popd 指令來移除,移除時不能指定項目,是採用先進先出的方式,也就是號碼越大的越先被移出哩 !

$ popd
$ dirs -l -v
0 /var/log
1 /var/www/arthurtoday.com/html
2 /etc/nginx/sites-available

阿舍比起用設定 alias 的方式來說,這種方式應該比較適合用在臨時需要在一堆資料夾間做操作和處理,或是,在用別人電腦時,可以透過資料夾堆疊來暫時的加快處理速度和減少打字哩 ! .... ^^=

推薦閱讀


有疑問? 問題還是沒解決嗎? 歡迎下方留言提問和討論 😁

沒有留言 :

張貼留言

歡迎留言提問和討論 .... 😁