Apa yang istimewa dari direktori yang namanya dimulai dengan titik?

25

Saya bertanya-tanya apa perbedaan antara keduanya:

~/somedirectory/file.txt

dan

~/.somedirectory/file.txt

Sangat sulit untuk menanyakan ini di Google karena saya tidak tahu bagaimana menjelaskan .kapan saya bahkan tidak tahu harus menyebutnya apa. Tetapi bisakah seseorang menggambarkan perbedaan antara termasuk titik dan tidak termasuk itu?

Dark Templar
sumber

Jawaban:

18

Di bawah sistem seperti unix, semua direktori berisi dua entri, .dan.. , yang masing-masing mewakili direktori dan induknya. Entri ini tidak menarik sebagian besar waktu, jadi lssembunyikan mereka, dan shell wildcard seperti *tidak termasuk mereka. Lebih umum, lsdan wildcard menyembunyikan semua file yang namanya dimulai dengan .; ini adalah cara sederhana untuk mengecualikan .dan ..dan memungkinkan pengguna untuk menyembunyikan file lain dari daftar. Selain dikecualikan dari daftar, tidak ada yang istimewa tentang file-file ini.

Unix menyimpan file konfigurasi per-pengguna di direktori home pengguna. Jika semua file konfigurasi muncul dalam daftar file, direktori home akan berantakan dengan file yang tidak dipedulikan pengguna setiap hari. Jadi file konfigurasi selalu dimulai dengan .:: biasanya, file konfigurasi untuk aplikasi Foo disebut sesuatu seperti .fooatau .foorc. Untuk alasan ini, file konfigurasi pengguna sering dikenal sebagai file dot .

Gilles 'SANGAT berhenti menjadi jahat'
sumber
1
"Lebih umum, lsdan wildcard menyembunyikan semua file yang namanya dimulai dengan .; Ini adalah cara sederhana untuk mengecualikan .dan ..dan memungkinkan pengguna untuk menyembunyikan file lain dari daftar." Ini kedengarannya seperti berikut: Konsep menyembunyikan file / direktori yang dimulai dengan titik sebenarnya telah muncul untuk disembunyikan . ... Tetapi kemudian, orang-orang menyadari bahwa bisa menyembunyikan beberapa file / direktori memiliki nilai di dalamnya dan karenanya, mereka mulai meletakkan sebuah titik di awal file yang ingin mereka sembunyikan. Apakah itu benar-benar kasus atau hanya spekulasi?
Utku
3
@Utku Sebenarnya, itu sebaliknya, paling tidak pada awalnya: pengembang asli hanya ingin bersembunyi .dan ..tetapi membuat kesalahan . Namun mungkin bahwa ia dicegah untuk memperbaikinya karena beberapa pengguna merasa bermanfaat, dan alasan mengapa file konfigurasi pengguna mulai dengan .pasti sehingga mereka tidak mengacaukan output lsdi direktori home. Saya pikir kami memiliki pertanyaan tentang ini di sini, tetapi saya tidak dapat menemukannya, mungkin telah salah diartikan.
Gilles 'SO- stop being evil'
15

Direktori yang dimulai dengan titik .dianggap tersembunyi. Itu berarti:

  • ~/somedirectorydan ~/.somedirectorydirektori berbeda. Itu jika ~/somedirectoryada dan Anda melakukannya mkdir ~/.somedirectory, Anda tidak akan gagal dengan File Existspesan.

  • The lsperintah tidak akan menampilkan direktori tersebut dimulai dengan.

  • The ls -aakan menunjukkan kedua direktori

Tom
sumber
6
ls -A menampilkan file dan direktori yang dimulai dengan. tetapi tidak termasuk. dan .. entri.
Julian
7

Untuk detail tentang sistem file Unix, periksa standarnya . Secara khusus, file dot digunakan untuk file konfigurasi dalam direktori pengguna, dan jika suatu program memiliki lebih dari satu, itu harus menempatkan mereka ke dalam direktori dot.

Ini menyembunyikan file dari pengguna, kecuali mereka ingin menemukannya . Dengan begitu mereka tidak menghalangi, dan alat tidak mengacaukannya secara tidak sengaja.

Spencer Rathbun
sumber
4

Yang memimpin "." dalam direktori atau nama file menyebabkan direktori atau file tersebut disembunyikan ketika melakukan lsperintah.


sumber
1
Anda dapat melihat semua file dimulai dengan "." dengan ls -a.
Sardathrion
1

Seperti @DaveNay sudah katakan, periode itu akan menyebabkan file atau direktori disembunyikan.

Untuk pertanyaan tersirat kedua Anda, ini adalah bagaimana Anda mencari itu di google:

Cukup ketik di kotak pencarian: periode linux sebelum nama


sumber