Làm cách nào để sử dụng lệnh Pushd và popd?


332

Các ứng dụng thực tế của cả hai pushdpopdkhi có một lợi thế của việc sử dụng hai lệnh này hơn cdvà là cd -gì?

EDIT : Tôi đang tìm kiếm một số ví dụ thực tế về việc sử dụng cho cả hai lệnh này hoặc lý do để giữ ngăn xếp với các thư mục (khi bạn đã hoàn thành tab cd -, bí danh để rút ngắn cd .., v.v.).

Câu trả lời:


304

pushd, popddirslà các nội dung shell cho phép bạn thao tác ngăn xếp thư mục . Điều này có thể được sử dụng để thay đổi thư mục nhưng trở lại thư mục mà bạn đã đến.

Ví dụ

bắt đầu với các thư mục sau:

$ ls
dir1  dir2  dir3

đẩy đến dir1

$ pushd dir1
~/somedir/dir1 ~/somedir
$ dirs
~/somedir/dir1 ~/somedir

dirslệnh xác nhận rằng chúng ta có 2 thư mục trên ngăn xếp ngay bây giờ. dir1và thư mục gốc , somedir.

đẩy tới ../dir3 (vì chúng ta đang ở trong đó dir1)

$ pushd ../dir3
~/somedir/dir3 ~/somedir/dir1 ~/somedir
$ dirs
~/somedir/dir3 ~/somedir/dir1 ~/somedir
$ pwd
/home/saml/somedir/dir3

dirscho thấy chúng ta có 3 thư mục trong ngăn xếp bây giờ. dir3, dir1, Và somedir. Chú ý hướng đi. Mỗi thư mục mới sẽ được thêm vào bên trái. Khi chúng tôi bắt đầu bật các thư mục ra, chúng cũng sẽ đến từ bên trái.

tự thay đổi thư mục thành ../dir2

$ cd ../dir2
$ pwd
/home/saml/somedir/dir2
$ dirs
~/somedir/dir2 ~/somedir/dir1 ~/somedir

Bây giờ bắt đầu thư mục popping

$ popd
~/somedir/dir1 ~/somedir
$ pwd
/home/saml/somedir/dir1

Thông báo chúng tôi xuất hiện trở lại dir1.

Lại một lần nữa ...

$ popd
~/somedir    
$ pwd
/home/saml/somedir

Và chúng tôi trở lại nơi chúng tôi bắt đầu , somedir.

Có thể có một chút khó hiểu, nhưng phần đầu của ngăn xếp là thư mục mà bạn hiện đang ở. Do đó, khi chúng tôi quay lại somedir, mặc dù dirshiển thị điều này:

$ dirs
~/somedir

Ngăn xếp của chúng tôi là nguyên vẹn trống rỗng.

$ popd
bash: popd: directory stack empty

19
Cảm ơn, tôi hoàn toàn hiểu khái niệm stack và cách các lệnh này hoạt động. Tuy nhiên, tôi đang tìm kiếm một số lý do thực tế để giữ ngăn xếp với các thư mục (khi bạn hoàn thành tab cd -, bí danh để rút ngắn cd .., v.v.).
cú pháp

21
Tôi thường sử dụng pushd& popdtrong các kịch bản b / c họ cứu tôi khỏi phải nhớ tôi đến từ đâu, tôi luôn popdcó thể quay lại từ nơi tôi đến. Tôi thường làm popd >/dev/null 2>&1để làm cho nó im lặng. Tôi sử dụng cd- hàng ngày trong vỏ của tôi. Có một số mẹo tiết kiệm thời gian khác trong bài viết này là: thegeek ware.com / 2008/10 / .
slm

2
@Garrett - không ai mà tôi có thể thụ thai.
slm

4
@Garrett @slm vì cd -chỉ theo dõi thư mục cuối cùng, tôi tưởng tượng có thể có vấn đề nếu bạn gọi một chức năng cũng thay đổi thư mục trong nội bộ. trong trường hợp đó, chức năng sẽ kết thúc việc đặt lại - vào thư mục hiện tại của bạn, không phải thư mục bạn muốn bật lại. Pushd / popd là phương pháp an toàn nhất. Lưu ý: tôi chưa kiểm tra lý thuyết của mình.
Nhị phân Phile

5
Tại sao không trở lại ~/somedir/dir3sau lần đầu tiên popd?
ziyuang

198

một trường hợp sử dụng thực sự hữu ích cho pushdpopdcác lệnh để làm việc với nhiều thư mục cùng một lúc.

Bạn có thể điều hướng ngăn xếp rất dễ dàng, vì nó được liệt kê. Có nghĩa là, bạn có thể có một số thư mục làm việc theo ý của bạn trong khi làm việc.

Xem một ví dụ đơn giản dưới đây.


Đầu tiên, hãy tạo cấu trúc thư mục mẫu.

    user@vb:~$ mkdir navigate
    user@vb:~/navigate$ mkdir dir1
    user@vb:~/navigate$ mkdir dir2
    user@vb:~/navigate$ mkdir dir3

Sau đó, bạn có thể thêm tất cả các thư mục của mình vào ngăn xếp:

    user@vb:~/navigate$ pushd dir1/
    ~/navigate/dir1 ~/navigate
    user@vb:~/navigate/dir1$ pushd ../dir2/
    ~/navigate/dir2 ~/navigate/dir1 ~/navigate
    user@vb:~/navigate/dir2$ pushd ../dir3/
    ~/navigate/dir3 ~/navigate/dir2 ~/navigate/dir1 ~/navigate

Bạn có thể tra cứu nó bằng cách:

    user@vb:~/navigate/dir3$ dirs -v
     0  ~/navigate/dir3
     1  ~/navigate/dir2
     2  ~/navigate/dir1
     3  ~/navigate

Để điều hướng an toàn, bạn cần thêm thư mục (không) cuối cùng hai lần, vì nó sẽ luôn được viết lại:

    user@vb:~/navigate/dir3$ pushd .
    user@vb:~/navigate/dir3$ dirs -v
     0  ~/navigate/dir3
     1  ~/navigate/dir3
     2  ~/navigate/dir2
     3  ~/navigate/dir1
     4  ~/navigate

Bây giờ, bạn có thể chuyển qua các thư mục này và làm việc với stack như với các bí danh cho các thư mục. Tôi đoán phần sau đây là tự giải thích:

    user@vb:~/navigate/dir3$ cd ~4
    user@vb:~/navigate$ dirs -v
     0  ~/navigate
     1  ~/navigate/dir3
     2  ~/navigate/dir2
     3  ~/navigate/dir1
     4  ~/navigate
    user@vb:~/navigate$ cd ~3
    user@vb:~/navigate/dir1$ dirs -v
     0  ~/navigate/dir1
     1  ~/navigate/dir3
     2  ~/navigate/dir2
     3  ~/navigate/dir1
     4  ~/navigate
    user@vb:~/navigate/dir1$ touch text.txt
    user@vb:~/navigate/dir1$ cp text.txt ~2
    user@vb:~/navigate/dir1$ ls ~2
    text.txt
    user@vb:~/navigate/dir1$ dirs -v
     0  ~/navigate/dir1
     1  ~/navigate/dir3
     2  ~/navigate/dir2
     3  ~/navigate/dir1
     4  ~/navigate

Mẹo bổ sung là tạo một số bí danh cho dirs -v.

Ví dụ:

# In ~/.bashrc
alias dirs="dirs -v"

28
Và bạn có thể xóa ngăn xếp bằng cáchdirs -c
Jun Murakami

19
+1 để thực sự đưa ra một số ví dụ thực tế. Thật dễ dàng để xem Pushd / popd làm gì từ trang man, nhưng dirs và cd ~ # ban đầu không rõ ràng.
Scribpetacher

thay vào đó, bạn cũng có thể sử dụng một giải pháp như fasd cho loại quy trình công việc này
WuTheFWasThat

Vì vậy, nó tốt hơn cho trường hợp sử dụng thoáng qua hơn là đặt CDPATH?
rfabbri

2
@Jun, có "mkdir dir {1,2,3}" để tạo 3 thư mục trong một lần chụp.
Bulat M.

39

Một trường hợp sử dụng đơn giản để sử dụng ngăn xếp thư mục những gì bạn không thể làm chỉ bằng cd là:

pushd .thêm thư mục hiện tại XX vào dirsngăn xếp. Sau đó, bạn có thể di chuyển xung quanh bằng cách sử dụng cdvà để trở về XX, bạn chỉ cần thực hiện popdbất kể bạn ở "cây thư mục" bao xa (có thể nhảy qua nhiều cấp độ, đi ngang, v.v.). Đặc biệt hữu ích trong các tập lệnh bash.


2
Tôi nghĩ rằng đây là tính năng tôi tận dụng thường xuyên nhất. Bởi vì pushd/ popdcông việc độc lập với cd, bạn có thể sử dụng chúng như một dấu trang ổn định hơn cd -.
Gordon Bean

Đối với tôi điều này là không đúng sự thật. Mỗi khi tôi sử dụng cd, ngăn xếp của tôi thay đổi.
Harendra Singh

ồ, đó là vì đã sử dụng zsh, khi tôi đổi sang bash, nó hoạt động tốt
Harendra Singh

4
Đây là câu trả lời thực chất duy nhất liên quan đến so sánh với cd -, IMO. Cho dù đẩy foo; <thay đổi thư mục ngẫu nhiên>; popd đáng giá hơn a = foo; cd $ a; <thay đổi thư mục ngẫu nhiên>; cd $ a ... Đối với các tập lệnh, tôi có thể thấy một sự tiện lợi cú pháp nhỏ trong cái trước (đẩy), nhưng một sự cải thiện lớn về độ rõ ràng trong các biến sau ([rõ ràng]!). Đối với một phiên tương tác, tôi nghĩ rằng tôi sẽ giả sử hệ thống phân cấp thư mục của mình được tổ chức đúng cách ngay từ đầu và nếu tôi bị mất chỉ đơn giản là cd ~ / back / to / Rõ ràng / đường dẫn.
Jan Kyu Peblik

9

pushdpopdcho phép bạn thao tác các thư mục trên stack.

Khi bạn có pushdmột thư mục, bạn đặt thư mục hiện tại vào ngăn xếp và thay đổi thư mục thành thư mục được chỉ định làm tham số.

popd sẽ cho phép bạn quay lại thư mục trên ngăn xếp.

Nếu bạn lặp lại, truyền tải thư mục sẽ được bảo quản và bạn có thể quay lại các thư mục đã lưu theo thứ tự ngược lại với những gì bạn đã lưu chúng vào.


6

về bash , về cơ bản: thay vì sử dụng cd, người ta có thể sử dụng pushdđể thay đổi thư mục, với cách sử dụng thực tế: lịch sử của các thư mục đã truy cập được lưu (chính xác: xếp chồng) và người ta có thể chuyển đổi giữa chúng

pushd /home; pushd /var; pushd log

Để xem ngăn xếp sử dụng dirsvà để điều hướng dễ dàng hơn (để lấy số của "mục nhập ngăn xếp", hãy sử dụng:

dirs -v

Đầu ra:

me@myhost:/home$ dirs -v
 0  /home
 1  /var
 2  /tmp

Bây giờ sử dụng những con số này với cd~như:

cd ~1

Nhưng những con số này được sắp xếp lại ngay bây giờ và vị trí "0" sẽ thay đổi, vì vậy chỉ cần pushdthư mục đến vị trí trên cùng hai lần (hoặc sử dụng một hình nộm ở vị trí 0) như:

me@myhost:/home$ dirs -v
 0  /home
 1  /home
 2  /var
 3  /tmp

Bây giờ 1..3 sẽ giữ vị trí đó

(để giải phóng thư mục hiện tại khỏi ngăn xếp / xóa nó khỏi lịch sử sử dụng popd)


5

Một cách sử dụng thực tế mà tôi đã tìm thấy là chuyển đổi giữa các thư mục bằng cách sử dụng Pushd và popd.

Giả sử chúng ta có hai thư mục dir1 và dir2 và tôi cần phải chuyển đổi giữa chúng liên tục vì một số lý do xyz.

Hiện tại tôi đang ở somedir có hai thư mục dir1dir2:

alcohol@alcohol-machine:~/somedir$ ls
dir1  dir2
alcohol@alcohol-machine:~/somedir$ 

Bây giờ tôi chuyển sang dir1

alcohol@alcohol-machine:~/somedir$ cd dir1
alcohol@alcohol-machine:~/somedir/dir1$ pwd
/home/alcohol/somedir/dir1

Bây giờ tôi sẽ thêm dir1vào ngăn xếp và chuyển sangdir2

alcohol@alcohol-machine:~/somedir/dir1$ pushd /home/alcohol/somedir/dir2
~/somedir/dir2 ~/somedir/dir1
alcohol@alcohol-machine:~/somedir/dir2$

Như bạn có thể thấy, bây giờ tôi có dir2dir1trên stack và tôi hiện đang tham gia dir2.

Bây giờ để chuyển trở lại dir1, tôi sẽ chạy pushd || popd.

alcohol@alcohol-machine:~/somedir/dir2$ pushd || popd
~/somedir/dir1 ~/somedir/dir2
alcohol@alcohol-machine:~/somedir/dir1$ 

Voila, tôi vào dir1 và tôi có dir1 và dir2 trên stack. Để chuyển trở lại dir2 một lần nữa chạypushd || popd

alcohol@alcohol-machine:~/somedir/dir2$ pushd || popd
~/somedir/dir1 ~/somedir/dir2
alcohol@alcohol-machine:~/somedir/dir1$ 

Đây là một cách đơn giản để chuyển đổi giữa các thư mục. Bây giờ, bạn có thể biết những gì, tại sao tôi cần phải chuyển đổi giữa các thư mục? Một trường hợp sử dụng là, khi tôi làm việc trên ứng dụng web, tôi có tệp tạo trong một thư mục và tệp nhật ký của tôi trong thư mục khác. Thông thường khi gỡ lỗi ứng dụng, tôi cần chuyển đổi giữa thư mục nhật ký, để kiểm tra nhật ký mới nhất và sau đó chuyển trở lại thư mục make, để thực hiện một số thay đổi và xây dựng ứng dụng.


11
(1) Câu hỏi đặt ra, "những lợi thế của hơn pushdpopdhơn là cd -gì?" Bạn rõ ràng không trả lời câu hỏi đó, vì bạn đang mô tả chính xác những gì cd -làm. (2) quan điểm của câu nói là pushd || popdgì? Vâng, tôi biết điều đó cmdA || cmdBcó nghĩa là chạy cmdAvà nếu thất bại, thì hãy chạy cmdB. Tôi đang hỏi nó làm gì tốt trong bối cảnh này.  pushdkhông có đối số nghĩa là "hoán đổi hai phần tử trên cùng trên ngăn xếp thư mục"; nó không thành công nếu thư mục hiện tại là thành phần duy nhất trên ngăn xếp thư mục. Trong trường hợp đó, popdcũng sẽ thất bại.
G-Man

3
Tôi không thể tin rằng không ai đã nâng đỡ bạn! Phao cứu sinh! Thật là một hack tuyệt vời. Cảm ơn. Các toggling, theo ý kiến của tôi, các trường hợp sử dụng cho pushdpopd.
Sonny

3
Có hai cách riêng biệt yêu cầu nhập ít hơn nhiều so pushd || popdvới chuyển đổi giữa các thư mục: pushdkhông có đối số nào thực hiện điều này. cd -rõ ràng tồn tại chỉ để chuyển trở lại thư mục cuối cùng. Ngoài ra, câu hỏi yêu cầu lợi thế pushdhơn cd -, trong khi câu trả lời này rõ ràng không cung cấp gì ngoài nhược điểm: gõ nhiều hơn.
Benjamin Riggs

Trong bash, không có đối số, Pushd trao đổi hai thư mục trên cùng và trả về 0. Tại sao bạn cần || popdchuyển đổi? Vui lòng giải thích. (Không phải chỉ cần đủ thôi sao?)
Johnny Wong

@Sonny Chỉ cần sử dụng cd -để chuyển đổi giữa hai thư mục. Ngoài ra, cdkhông có đối số trả về thư mục nhà của bạn.
Steve

2

Nói một cách đơn giản - khi bạn cần điều hướng giữa hơn 2 thư mục, thường là vài lần qua lại, vì cd -sẽ không cắt nó với bất cứ thứ gì ngoài 2 thư mục.

Vì vậy, ví dụ, thay vì cố gắng tìm lại các đường dẫn dài trước đó bằng cách xem lịch sử hoặc tab của bạn - hoàn thành một con đường dài, bạn chỉ cần xếp những cái quan trọng lên và nếu bạn cần di chuyển đến chúng một cách thuận tiện. Xoay giữa các cấu trúc thư mục phức tạp và các đường dẫn dài trở nên trơn tru và nhanh chóng.

Các nội trang cũng cho phép bạn sắp xếp lại ngăn xếp hoặc bật ra các thư mục bạn không cần nữa cho phép linh hoạt trong quy trình làm việc của bạn.

Xếp chồng thư mục cũng có thể được sử dụng trong các tập lệnh tương tự cho các hoạt động trải rộng trên một số thư mục.


1

Tôi thấy việc sử dụng dirs / popd / Pushd hơi khó chịu. Tôi đã đưa ra giải pháp cá nhân của mình trong tcsh, bằng cách thêm đoạn mã sau vào .alias

  foreach b (. , - 0 1 2 3 4 5 6 7 8 9 )
    alias p$b       'set a=`pwd`; echo $a >! ~/.mydir'$b
    alias cd$b      'cd "`cat ~/.mydir'$b'`"'
    alias del$b     'rm -v ~/.mydir'$b
    alias home$b    'set a="~"; echo $a >! ~/.mydir'$b
  end
    alias cdl       'grep / ~/.mydir*'

theo cách này, tôi đã đặt bí danh, ví dụ: "p." để lưu thư mục làm việc hiện tại vào tập tin ~ / .mydir. và "cd." để phục hồi thư mục đó bất cứ khi nào và bất cứ nơi nào tôi muốn. "del." xóa tệp tương ứng; "Trang Chủ." đặt thư mục vào thư mục nhà (tương đương với cd; p.); "cdl" liệt kê các thư mục đã lưu. Lưu ý rằng nếu bạn sử dụng ~ / Dropbox / .mydir $ b (hoặc bất kỳ dịch vụ đám mây nào khác như egCloud) thay vì ~ / .mydir $ b, bạn sẽ có một cách thông minh để sử dụng các thư mục ưa thích của mình trên các tài khoản và máy khác nhau.


0

Tôi đang sử dụng nó như thế này trong bash_profile và .bashrc của tôi như thế này

vi .bash_profile
alias dirs="dirs -v"
source d.sh
:wq

vi .bashrc
alias dirs="dirs -v"
:wq

vi d.sh
pushd ~/Documents/GIT/seiso-data
pushd ~/Documents/GIT/ewe/EosRegistry
pushd ~/Documents/GIT_LODGING/site-cookbooks
pushd ~/Documents/CHEF_LODGING
pushd  .
:wq

nó giúp tôi nhảy vào giữa các thư mục được sử dụng gần đây nhất trên thiết bị đầu cuối của mình. :-) Hy vọng nó sẽ giúp bạn sử dụng Pushd chứ không phải popd tôi sử dụng cd ~ stackednumber


0

Sử dụng cdcd -cho phép bạn chuyển đổi giữa chỉ hai thư mục được sử dụng gần đây nhất của bạn. Kích thước "thư mục làm việc" của bạn là hai.

Sử dụng pushd, bạn có thể giữ một số lượng lớn các thư mục trong bộ làm việc của bạn.

Tôi sử dụng pushdhầu hết thời gian hơn là cd. Khi bạn đã xây dựng một chồng các thư mục hoạt động với pushd directory_name, sau đó bạn có thể nhảy giữa chúng cả ngày với pushd ~#.

pushd dir1
pushd ../dir2
pushd /full/path/to/dir3

# There are now three directories in the stack.

pushd ~3
pushd ~2

# The same three directories are still on the stack, 
# just in a different order.

Tôi popdhiếm khi sử dụng , chỉ khi tôi muốn xóa một thư mục khỏi ngăn xếp khi tôi biết tôi đã sử dụng xong thư mục đó.

Chuyển đến thư mục và xóa nó khỏi ngăn xếp:

popd ~2

Ở trong thư mục hiện tại và xóa thư mục khác khỏi ngăn xếp:

popd +2

Bạn kết thúc với một kiểu làm việc tương tự như mở nhiều cửa sổ đầu cuối hoặc các tab mở (một cho mỗi thư mục mà bạn đang hoạt động tích cực), nhưng tất cả trong một thiết bị đầu cuối. Điều này giúp tiết kiệm bất động sản màn hình, cộng với, vì các đường dẫn thư mục đều có sẵn trong một trình bao, bạn có thể thực hiện những việc như:

  • sao chép tập tin giữa các thư mục bạn hiện đang làm việc
  • xem hoặc chỉnh sửa tập tin trong thư mục khác mà không cần đến đó

Ví dụ:

cp ~2/myfile.txt ~4
less ~2/myfile.txt

Trong tcsh(nhưng không bash), bạn thậm chí có thể lưu ngăn xếp thư mục của mình vào một tệp và khôi phục nó sau.

Lưu lại:

dirs -S ~/dirstack

Khôi phục:

dirs -L ~/dirstack

Nếu không, chỉ cần thay thế ~trong các bashví dụ với =để sử dụng trong tcsh.

pushd =2
popd =4
popd +1

0

Pushd / popd là một khái niệm đơn giản khiến tôi mất một lúc để hiểu vì mọi người có xu hướng dạy nó bằng cách định nghĩa các lệnh này là các lệnh 'thao túng ngăn xếp thư mục' mà theo tôi là khó hiểu.

Tôi nhìn nó theo một cách khác:

pushd [FOLDER_NAME] - ý chí cd tới [FOLDER_NAME] và sẽ ghi lại các điểm đến mà là [FOLDER_NAME] trong một ngăn xếp dir trong khi thư mục hàng đầu trong ngăn xếp sẽ luôn luôn là dir hiện tại bạn đang ở trong

popd - trước tiên sẽ đưa bạn vào bản ghi thư mục nằm trên cùng của ngăn xếp và sau đó xóa nó khỏi ngăn xếp

dirs - Sẽ in dir chồng (có thể được coi là các dir Db nơi entry tận cùng bên trái là thư mục hiện hành (trên cùng của ngăn xếp)

Vì vậy, 2 trường hợp sử dụng phổ biến nhất là:

Trường hợp sử dụng 1: Điều hướng bằng cách sử dụng Pushd và popd

root@mypc:/main/$ ls
dir1  dir2  dir3  dir4

root@mypc:/main/$ dirs   # prints the current stack
/main

root@mypc:/main/$ pushd dir1    # Will cd to dir1 and document dir1 in dir stack, stack is now:
/main/dir1 /main 
root@mypc:/main/dir1$    # I am now in /main/dir1

root@mypc:/main/dir1$    # Now let's go wild and document whatever I want
root@mypc:/main/dir1$ pushd ../dir2 
root@mypc:/main/dir2$     # Woo I am in /main/dir2
root@mypc:/main/dir2$ pushd ../dir3 
root@mypc:/main/dir3$     # Woo I am in /main/dir3
root@mypc:/main/dir3$ pushd ../dir4 
root@mypc:/main/dir4$     # Woo I am in /main/dir4
root@mypc:/main/dir4$ dirs   # Now dir stack is:
/main/dir4 /main/dir3 /main/dir2 /main/dir1 /main

Hãy nói rằng tôi đã làm như trên vì tôi muốn điều hướng trở lại những thư mục mà tôi đã ghi lại!

Lưu ý rằng nếu tôi thủ công cd, tôi sẽ ảnh hưởng đến mục nhập ngăn xếp thư mục hàng đầu (luôn luôn là thư mục hiện tại)

root@mypc:/main/dir4$ cd ..   # Now dir stack is:
# (note that /main appear in the leftmost as well which is the top of the stack)
/main /main/dir3 /main/dir2 /main/dir1 /main
root@mypc:/main$ 

Hãy điều hướng ngược lại ngay bây giờ:

root@mypc:/main$ popd
root@mypc:/main$     # Still in /main since it was at the top of the dir stack
root@mypc:/main$ dirs    # Stack is now:
/main/dir3 /main/dir2 /main/dir1 /main

root@mypc:/main$ popd
root@mypc:/main/dir3$ popd    # Woo in dir3 now, about to navigate to dir2
root@mypc:/main/dir2$ popd    # Woo in dir2, about to navigate to dir1
root@mypc:/main/dir1$ dirs    # Stack is now:
/main

Một lần nữa tôi có thể ghi lại bất cứ thư mục nào tôi muốn và sau đó điều hướng thủ công đến một thư mục khác sau đó tôi sẽ có thể dễ dàng quay lại thư mục tài liệu mà tôi đã chèn vào ngăn xếp.

Trường hợp sử dụng 2: Điều hướng bằng chỉ mục ngăn xếp số

Hãy nói rằng tôi đã đẩy bằng cách sử dụng Pushd dir4 dir3 dir2 dir1, bây giờ đang chạy dir -v sẽ hiển thị:

root@mypc:/main$ dirs -v
 0  /main/dir1  (this is the current dir you are in always)
 1  /main/dir2
 2  /main/dir3
 3  /main/dir4

Bây giờ bạn có thể thực hiện bất kỳ hoạt động Linux nào liên quan đến các thư mục bằng cách sử dụng chỉ mục ngăn xếp:

root@mypc:/main$ cp ~2/temp.txt ~3/new_temp.txt    # this will run in the background, something like:
# cp /main/dir2/temp.txt  /main/dir3/new_temp.txt

Bạn thậm chí có thể xóa một mục cụ thể từ ngăn xếp dir:

root@mypc:/main$ popd ~4

Hy vọng rằng việc sử dụng các từ "tài liệu" hoặc suy nghĩ về ngăn xếp dir như một số loại Db đơn giản hóa khái niệm này!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.