2009-12-09 44 views
9

nói chung chúng tôi sử dụngchuyển sang thư mục cha trong unix

cd .. cho đi đến thư mục cha

cd ../../ để đi đến thư mục cha mẹ cha mẹ. và

cd ../../../../../ cho thư mục mẹ thứ 5.

có cách nào đơn giản để thực hiện việc này không?

vỏ tôi đang sử dụng là ksh.

+0

Bạn có thể bỏ dấu gạch chéo ở cuối. Ngoài ra, câu trả lời cho câu hỏi của bạn có thể phụ thuộc vào vỏ nào. –

+0

Một số phím tắt: 'cd -' đưa bạn trở lại bất cứ nơi nào bạn vừa đến. 'cd ~' đưa bạn đến thư mục chính của bạn. – Asaph

+0

Bạn có thể kiểm tra lệnh mới ''bd'': xem [câu trả lời của tôi dưới đây] (http://stackoverflow.com/a/18694331/6309) – VonC

Trả lời

6

Chức năng này cho Bash, nhưng một cái gì đó tương tự có thể được thực hiện cho những người khác (điều này có thể làm việc như nó vốn có trong ksh và zsh): sử dụng

cdn() { pushd .; for ((i=1; i<=$1; i++)); do cd ..; done; pwd; } 

Ví dụ:

/some/dirs/and/subdirs$ cdn 3 
/some/dirs/and/subdirs /some/dirs/and/subdirs 
/some 
/some$ popd 
/some/dirs/and/subdirs$ 
+0

tôi chấp nhận điều này vì có vẻ như chúng tôi không có dòng lệnh trực tiếp ngắn cắt cho this.still tôi hy vọng có một số cách để làm điều đó một cách ngắn gọn trên dòng lệnh. – Vijay

0

Nếu bạn không thích gõ hoặc ghi nhớ tên tệp, bạn có thể điều hướng thư mục bằng một cái gì đó như NerdTree?

0

Bạn có thể xác định bí danh để đơn giản hóa loại hoạt động cd này.

Lưu ý rằng sẽ dễ dàng xảy ra lỗi với bí danh theo số ../../../.. v.v. vì bạn sẽ phải là rất chắc chắn về mối quan hệ giữa thư mục hiện tại của bạn và nơi bạn muốn.

Tốt hơn để sử dụng đường dẫn tuyệt đối với alias

0

Và tôi nghĩ rằng tôi là lười biếng ...

Từ lâu lắm rồi, tôi mệt mỏi gõ cd .. như vậy, kể từ khoảng năm 1988 một trong những bí danh tiêu chuẩn của tôi (và hàng loạt tệp cho MSDOS/Windows) là up. Có lẽ tôi nên mở rộng khái niệm:

alias up='cd ..' 
alias up2='cd ../..' 
alias up3='cd ../../..' 
alias up4='cd ../../../..' 
alias up5='cd ../../../../..' 
alias up6='cd ../../../../../..' 
0

sử dụng cd / để đi vào thư mục gốc của bạn hệ thống tập tin, và cd ~ để đi với bạn nhà thư mục.
Ví dụ: để đi đến giám đốc bạn đăng nhập chỉ cần cd /var/log.

0

Đối với Bourne vỏ kiểu (bao gồm ksh), bạn có thể viết một hàm shell:

cdup() { 
    set -- "${1-1}" 
    while test "$1" -gt 0; do 
     cd .. 
     set -- "$(($1-1))" 
    done 
} 
2

bạn cần phải c nếu bạn thiết lập bất kỳ bí danh nào như thế này. Bạn sẽ không luôn luôn đi lên 5 thư mục khi bạn cd ../../../../... Nếu bạn chỉ có 2 hoặc 3 thư mục từ/bạn sẽ gió trong /. Hãy thử điều này cho chính mình.

$ cd ~ 
$ pwd 
/home/you 
$ cd ../../../.. 
$ pwd 
/

Điều này xảy ra vì thư mục gốc của/thực tế là /.

+1

điều này không thể được coi là câu trả lời thay vì nó phải là một bình luận. – Vijay

+1

Bạn sẽ đề xuất một 'bình luận' cảnh báo như thế nào được viết? Nó có vẻ như nó xứng đáng không gian dọc cho rõ ràng. Đôi khi câu trả lời thực sự cho một câu hỏi là để tìm ra rằng bạn có thể không muốn làm những việc theo cách mà bạn nghĩ rằng bạn muốn làm mọi thứ. Tôi hy vọng bạn biết rằng 'cdn 5' của bạn chỉ có thể là 'cdn 1' có thể giúp bạn tiết kiệm nhiều hơn chỉ một vài dấu chấm. – istruble

0

Đây thường là cách tôi thực hiện. Tất nhiên trong ksh bạn có thể có các phím điều hướng của bạn thiết lập để cái gì khác. Khi tôi sử dụng ksh tôi đã sử dụng có chúng thiết lập để vi phong cách do đó sẽ là k thay vì lên mũi tên.

Trong tập lệnh trình bao, tốt hơn là phải rõ ràng. Nếu bạn có thể sử dụng một tên đường dẫn tuyệt đối sau đó làm như vậy và chạy một lệnh như:

cd /webdata/cgi-bin 

Nếu kịch bản có thể được chạy để hoạt động trên các tập tin trong thư mục khác nhau, sau đó bạn có thể xem xét một cái gì đó như thế này:

TOPDIR="/webdata" 
cd $TOPDIR/cgi-bin 

Nhưng nếu bạn thực sự không thể làm một trong những người sau đó dính vào .. chuỗi như vậy:

chmod +x *.py 
cd ../../../cgi-bin 

này là khá rõ ràng. Thực hiện một hành động trong thư mục làm việc hiện tại, sau đó điều hướng lên 3 cấp độ và chọn thư mục cgi-bin. Bất cứ ai có khả năng hiểu những gì bạn đang làm trong kịch bản lệnh shell sẽ không gặp khó khăn gì trong việc làm theo. Nếu kịch bản của bạn là thực sự phức tạp, sau đó nó sẽ giúp thêm một số ý kiến ​​như thế này:

# change to TOPDIR/cartsys/production/code/python 
cd python  
chmod +x *.py 
cd ../../../cgi-bin 

Hàm ý là bạn đang ở trong thư mục mã và thay đổi xuống một mức độ để trăn, do đó người đọc người quên nơi bạn nằm trong hệ thống phân cấp thư mục, hãy xem lời nhắc giúp họ đếm được 3 cấp.

cd .. 

<up arrow><ENTER> 
<up arrow><ENTER> 
<up arrow><ENTER> 
<up arrow><ENTER> 
0

Bạn có thể kiểm tra recent project bd

Nếu bạn đang ở trong con đường này

/home/user/project/src/org/main/site/utils/file/reader/whatever 

và bạn muốn đi đến site thư mục một cách nhanh chóng (thay vì gõ cd ../../../..),
sau đó chỉ cần nhập:

bd site 
Các vấn đề liên quan