Tại sao bạn nên chạy cd. trước khi làm gì?


Câu trả lời:


32

Bạn không.

Ít nhất là không chỉ như vậy. Dòng trước trong tài liệu được trích dẫn có tầm quan trọng:

  • Thiết lập lời nhắc của bạn để làm pwdmọi lúc bạn cd.
  • Luôn luôn làm một cd .trước khi làm bất cứ điều gì.

Bằng cách này, bạn với tư cách là nhà điều hành xác minh thư mục làm việc hiện tại của bạn trước khi thực hiện bất kỳ điều gì quan trọng, vì nó được in ra với mỗi thay đổi. cd .không có ý nghĩa gì khác.

"Xác minh" này là một điều tốt, và bạn nên điều chỉnh một hình thức của nó. Một biến thể phổ biến hơn (IMHO) của chủ đề này là luôn in ra thư mục làm việc tại dấu nhắc.


11
Có lẽ tốt hơn nên nghĩ về điều này là "luôn luôn gõ 'pwd' trước khi làm bất cứ điều gì quan trọng để đảm bảo bạn đang ở trong thư mục mà bạn nghĩ là bạn"
Rod MacPherson

4
Tại sao không làm một pwdtrước khi làm bất cứ điều gì?
Martin Konecny

15
Trên thực tế, nó có một công dụng. Nếu bạn đã truy cập vào một thư mục thông qua một liên kết tượng trưng và sau đó liên kết sẽ bị xóa và được tạo lại ở nơi khác, chẳng hạn như trong quá trình triển khai máy chủ nơi các phiên bản được điều khiển bằng symlink thành "current_release", thì việc thực hiện cd .sẽ thay đổi cơ sở thực tế thư mục mà bạn đang ở.
Stewart

1
+1 cho " luôn luôn in ra thư mục làm việc tại dấu nhắc." Đó là những gì tôi làm.
Paddy Landau

4
@Stewart Thật không may, điều này sẽ không hữu ích nếu liên kết tượng trưng thay đổi sau cd . nhưng trước khi làm bất cứ điều gì khác. Nó chỉ làm giảm khả năng nằm trong thư mục sai, nhưng không giải quyết được vấn đề chung. Trừ khi bạn chuyển sang thư mục thực bằng cách sử dụng cái gì đó giống như cd $(readlink -f .)bạn đã thực sự muốn ở đó.
scai

18

Nếu thư mục làm việc hiện tại của shell của bạn bị xóa, có thể mất dữ liệu.

Ví dụ,

$ pwd
/home/user/test
$ rmdir /home/user/test
$ pwd
/home/user/test
$ some_command | tee command.log
tee: command.log: No such file or directory
<long output>

Đầu ra của some_commandkhông được ghi vào đĩa.

cd .trước khi chạy một lệnh sẽ tiết lộ vấn đề.

$ pwd
/home/user/test
$ rmdir /home/user/test
$ cd .
$ pwd
.

Nếu thư mục thư mục làm việc hiện tại đã bị xóa và được tạo lại, việc gõ cd .sẽ "làm mới" tham chiếu đến thư mục đó.

$ ls
foo bar ljz
$ pwd
/home/user/test
$ rmdir /home/user/test
$ mkdir /home/user/test
$ pwd
/home/user/test
$ ls
$ cd .
$ ls 
foo bar ljz

13

Tôi nghĩ nó quan trọng hơn để hiển thị thư mục hiện tại của bạn.

Trên mọi máy chủ linux, tôi sửa đổi lời nhắc /etc/bashrcbằng cách thay đổi "W" thành "w".

 [ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "

đến

 [ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \w]\\$ "

Tác dụng của việc này là:

[root@xt include]#

đấu với

[root@xt /usr/src/spl-0.6.1/include]# 

PS1bash là cụ thể?
qdii

Tôi nghĩ vậy ... Đó là tất cả những gì tôi sử dụng.
ewwhite

1
Những thay đổi của bạn có thể bị mất với lần nâng cấp hệ thống tiếp theo, tho.
ott--

2
@ ott-- Dán nó ~/.profilehoặc của bạn ~/.bash_profilecũng như cập nhật/etc/skel/.profile
jscott
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.