Những gì đang có.


15

Dựa trên câu hỏi: Làm thế nào để sử dụng dấu nhắc lệnh bớt đau đớn , các mục ...câu trả lời được bình chọn nhiều nhất là gì? Tôi nhìn thấy nó khi tôi thực hiện một dirlệnh nhưng nó không hiển thị cho người dùng ở dạng tệp.

Trong trường hợp bạn không biết ý tôi là gì thì đây là một ví dụ:

.
..
Su.exe
Sup.txt
SuperUser.COM

Câu trả lời:


40

Các . là thư mục hiện tại, trong khi .. biểu thị thư mục mẹ. Nó cũng làm cho mọi thứ nhanh hơn ở dòng lệnh vì vậy bạn không cần phải nhập các đường dẫn đầy đủ.

thí dụ:

đi lên 2 thư mục:

cd ..\..\

hoặc trên một hệ thống dựa trên UNIX, để chạy các nhị phân thực thi trong thư mục hiện tại:

./program

Rất nhiều tập lệnh UNIX cũng sẽ sử dụng. để đại diện cho thư mục hiện tại, để quét các tệp chẳng hạn (Perl):

#!/usr/bin/perl

opendir ( DIR, "." ) || die "Error opening current directory\n";
while( ($f = readdir(DIR))){
     print("$f\n");
}
closedir(DIR);

Nó dễ mang theo hơn nhiều nếu bạn muốn di chuyển tập lệnh đến các thư mục hoặc hệ thống khác nhau vì tên thư mục không được mã hóa cứng.


3
Nó ít được biết đến, nhưng dòng lệnh Windows mở rộng điều này hơn nữa. . = thư mục này .. = thư mục mẹ ... = thư mục gốc của cha mẹ 3 dấu chấm đôi khi hữu ích, nhiều hơn thế và thật khó để xử lý.
salmonmoose

4
3 chấm không hoạt động đối với tôi, sử dụng Vista
Kevin Panko

1
cũng không phải tôi trên Windows 7 64 bit RTM. Nghe có vẻ như một huyền thoại đối với tôi. có chuyện gì với .. \ .. dù sao đi nữa?
AdamV

2
@salmonmoose: Tôi cũng không làm việc với XP.
Simon P Stevens


10

Cái ..này được sử dụng để điều hướng lên thứ bậc của hệ thống tập tin. Nó hữu ích khi bạn không muốn nhập một đường dẫn dài hoặc khi viết một tập lệnh / chương trình không biết chính xác nó sẽ được cài đặt ở đâu nhưng nó biết rằng ../media/nên giữ tất cả các hình ảnh / video / biểu tượng, v.v.

Dấu chấm đơn .rất hữu ích trong linux nơi bạn muốn chạy tệp thực thi trong thư mục hiện tại để bạn nhập ./a.outvì vỏ lệnh theo mặc định không tìm kiếm thư mục hiện tại cho các tệp thực thi (vì lý do bảo mật).

Dấu chấm đơn .cũng được sử dụng nếu bạn muốn chuyển thư mục hiện tại làm đối số cho lệnh.


1
PowerShell cũng không bao gồm. trong danh sách đường dẫn để tìm kiếm thực thi.
Joey

Làm sao để vượt qua '.' như là một đối số cho một lệnh?
Giải tích

@DeFu bạn vượt qua dấu chấm dưới dạng dấu chấm, ví dụ:ls .
hasen

ls các chức năng tương tự nhưls .
Tính toán

@DeFu cũng có nhưng khi bạn làm ls .bạn đang vượt qua '.' như một đối số cho 'ls'; đó không phải là những gì bạn yêu cầu? Nó hoạt động tương tự vì theo mặc định lsliệt kê thư mục hiện tại và .là thư mục hiện tại. Nhưng bạn đang chuyển nó cho lệnh, chắc chắn.
hasen

5

Các . là thư mục hiện tại. Bạn hiếm khi cần sử dụng cái này; hầu hết các lệnh sẽ đảm nhận thư mục hiện tại. .. là cấp độ tiếp theo lên; Đây là một phím tắt khá hữu ích. Nếu bạn đang ở trong C: \ foo \ bar và bạn muốn đến C: \ foo \ bar2, bạn có thể nói

cd ..\bar2

và bạn sẽ ở trong C: \ foo \ bar2. Nếu bạn không muốn truy cập bar2 mà chỉ muốn chạy C: \ foo \ bar.exe, thì bạn có thể nói

..\bar.exe

hoặc .. \ bar để chạy nó mà không cần quay lại thư mục cha. Tất nhiên, điều này hữu ích hơn khi bạn đại diện cho một con đường dài hơn mà C: \ foo (chẳng hạn như "C: \ Users \ Daniel \ My Dropbox \".


1
Tôi tìm thấy. đôi khi khá hữu ích, đặc biệt là khi sao chép hoặc di chuyển tệp đến vị trí hiện tại ( copy F:\*.foo .) hoặc tham chiếu đến nó ( start .ví dụ, mở Explorer trong thư mục hiện tại).
Joey

3

Họ đại diện cho:

.

Các thư mục hiện tại

.. 

Đại diện cho thư mục mẹ

Vì vậy, nếu bạn có "su.exe" thực thi trong:

  • Biến môi trường Đường dẫn của bạn (giả sử C: \ MyExecutables \ su.exe)
  • Thư mục hiện tại của bạn
  • Cha mẹ của bạn dir.

Bạn có thể thực thi từng cái như thế này:

 su.exe  

Thực hiện một trong các đường dẫn

.\su.exe 

Thực hiện một trong các thư mục hiện tại

..\su.exe

Thực hiện một trong các thư mục cha.

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.