Apa itu "." Dan ".." dalam direktori?


Jawaban:


40

. adalah direktori saat ini, sementara .. menandakan direktori induk. Itu membuat segalanya lebih cepat di baris perintah juga sehingga Anda tidak perlu mengetikkan path lengkap.

contoh:

naik 2 direktori:

cd ..\..\

atau pada sistem berbasis UNIX, untuk menjalankan binari yang dapat dieksekusi di direktori saat ini:

./program

Banyak skrip UNIX juga akan digunakan. untuk mewakili direktori saat ini, untuk memindai file misalnya (Perl):

#!/usr/bin/perl

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

Ini jauh lebih portabel jika Anda ingin memindahkan skrip ke direktori atau sistem yang berbeda karena nama direktori tidak dikodekan dengan keras.


3
Ini sedikit diketahui, tetapi baris perintah Windows memperluas ini lebih lanjut. . = direktori ini .. = direktori induk ... = direktori induk orangtua 3 titik kadang-kadang berguna, lebih dari itu dan itu terlalu sulit untuk ditangani.
Salmonmoose

4
3 titik tidak berfungsi untuk saya, menggunakan Vista
Kevin Panko

1
atau saya di Windows 7 64 bit RTM. Kedengarannya seperti mitos bagi saya. ada apa dengan .. \ .. pokoknya?
AdamV

2
@salmonmoose: Tidak berfungsi untuk saya di XP juga.
Simon P Stevens


10

Ini ..digunakan untuk menavigasi hierarki sistem file. Ini berguna ketika Anda tidak ingin mengetikkan jalur yang panjang, atau ketika menulis skrip / program yang tidak tahu di mana tepatnya itu akan diinstal tetapi ia tahu bahwa ../media/harus menyimpan semua gambar / video / ikon dll.

Single dot .berguna di linux di mana Anda ingin menjalankan executable di direktori saat ini sehingga Anda mengetik ./a.outkarena shell perintah secara default tidak mencari direktori saat ini untuk file yang dapat dieksekusi (untuk alasan keamanan).

Titik tunggal .juga digunakan jika Anda ingin meneruskan direktori saat ini sebagai argumen ke perintah.


1
PowerShell juga tidak termasuk. dalam daftar jalur untuk mencari yang dapat dieksekusi.
Joey

Bagaimana cara lulus '.' sebagai argumen untuk suatu perintah?
Kalkulus

@DeFu Anda melewatkan titik sebagai titik, misalnya:ls .
hasen

ls fungsinya sama sepertils .
Kalkulus

@DeFu baik ya tapi ketika Anda melakukannya ls .Anda sedang melewati '' sebagai argumen untuk 'ls'; bukankah itu yang kau tanyakan? Fungsinya sama karena secara default lsdaftar direktori saat ini, dan .direktori saat ini. Tapi Anda sedang lewat itu untuk perintah, pasti.
hasen

5

. adalah direktori saat ini. Anda jarang perlu menggunakan ini; sebagian besar perintah akan mengambil direktori saat ini. The .. adalah level selanjutnya; ini adalah jalan pintas yang agak berguna. Jika Anda berada di C: \ foo \ bar dan Anda ingin pergi ke C: \ foo \ bar2 bisa Anda katakan

cd ..\bar2

dan Anda akan berada di C: \ foo \ bar2. Jika Anda tidak ingin pergi ke bar2 tetapi hanya ingin menjalankan C: \ foo \ bar.exe, maka Anda dapat mengatakan

..\bar.exe

atau .. \ bar untuk menjalankannya tanpa kembali ke direktori induk. Tentu saja, ini lebih berguna ketika Anda merepresentasikan jalur yang lebih panjang dari C: \ foo (seperti "C: \ Users \ Daniel \ My Dropbox \".


1
Saya menemukan . kadang-kadang cukup berguna, terutama saat menyalin atau memindahkan file ke lokasi saat ini ( copy F:\*.foo .) atau merujuknya sebaliknya ( start .membuka Explorer di direktori saat ini, misalnya).
Joey

3

Mereka berdiri untuk:

.

Dir saat ini

.. 

Merupakan dir induk

Jadi, jika Anda memiliki "su.exe" yang dapat dieksekusi di:

  • Variabel lingkungan Path Anda (katakanlah C: \ MyExecutables \ su.exe)
  • Dir Anda saat ini
  • Dir orang tua Anda.

Anda dapat menjalankan masing-masing seperti ini:

 su.exe  

Laksanakan yang di Path

.\su.exe 

Laksanakan yang ada di dir saat ini

..\su.exe

Laksanakan yang ada di dir induk.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.