Awalnya saya pikir itu kebetulan, tetapi sekarang saya melihat bahkan ada tag untuk itu: semua nama file tersembunyi dimulai dengan titik. Apakah ini sebuah konvensi? Mengapa itu dipilih? Bisakah itu diubah? Atau dengan kata lain (sebagai pertanyaan terkait yang disarankan oleh @evilsoup yang menyiratkan jawaban kepada sekelompok orang lain): dapatkah saya menyembunyikan file tanpa menamai ulang (menggunakan .
sebagai karakter pertama dari nama mereka)?
filesystems
filenames
dot-files
JMCF125
sumber
sumber
Jawaban:
Menurut Wikipedia ,
... jadi itu dimulai sebagai bug, dan kemudian dianut sebagai fitur (sebagai catatan,
.
adalah tautan ke direktori saat ini dan..
merupakan tautan ke direktori di atasnya, tapi saya yakin Anda sudah tahu itu sudah ). Karena metode menyembunyikan file ini sebenarnya cukup baik sebagian besar waktu, saya kira tidak ada yang pernah repot-repot menerapkan menyembunyikan file gaya Windows.Ada juga fakta bahwa menerapkan perilaku yang berbeda akan menghasilkan jumlah fragmentasi yang lebih besar ke dunia * nix, yang merupakan hal terakhir yang diinginkan siapa pun.
Ada metode lain untuk menyembunyikan file yang tidak melibatkan penggantian nama mereka, tetapi hanya berfungsi untuk manajer file GUI (dan itu tidak universal di antara mereka - yang Linux utama menggunakannya, tapi saya tidak berpikir Finder OSX melakukannya, dan semakin banyak relung pengelola file Linux cenderung mendukung perilaku ini): Anda dapat membuat file bernama
.hidden
, dan meletakkan nama file yang ingin Anda sembunyikan di dalamnya, satu per baris.ls
dan gumpalan shell tidak akan menghargai ini, tetapi mungkin masih berguna bagi Anda.sumber
File yang dimulai dengan titik diabaikan secara default oleh perintah "ls", yang memiliki efek yang kurang lebih sama dari file "tersembunyi" tetapi tidak sama (perintah lain mungkin memilih untuk melakukan hal yang sama atau tidak). File yang dimulai dengan titik tidak "tersembunyi" karena "tersembunyi" bukan salah satu dari atributnya. Tidak seperti di DOS / Windows, "tersembunyi" bukan atribut di Unix. Ada banyak atribut di Unix ("man chattr" akan memberi tahu Anda semuanya) tetapi disembunyikan bukan salah satunya.
Alasan mengapa dot-file diabaikan oleh "ls" sebenarnya cukup lucu / memalukan. Itu bukan keputusan desain tetapi hasil bug perangkat lunak di masa-masa awal Unix . Saat istimewa. dan .. entri direktori ditambahkan ke sistem file, diputuskan bahwa perintah ls tidak boleh menampilkannya karena mereka menghalangi. Namun, program ini ditulis dengan tergesa-gesa untuk mengecualikan file apa pun yang namanya dimulai dengan a. karakter, alih-alih nama persis "." atau "..". Dan itu menciptakan preseden yang telah diikuti sejak saat itu di Unix. Lucunya, ketika orang-orang Unix pindah untuk membuat Plan 9 mereka tidak sengaja menaruh dot-file di dalamnya .
sumber
man chattr
, meskipun saya pikir mungkin saya perlu beberapa paket atau program khusus untuk membuat file tersembunyi lainnya mungkin.Apakah Anda dapat menyembunyikan file atau tidak, dan pada kondisi apa, tergantung pada sistem file yang Anda gunakan dan drivernya. Sistem file Unix tradisional tidak memiliki atribut "sembunyikan" untuk file.
Driver sistem file dapat menyembunyikan file apa pun yang diinginkan, dengan hanya menghilangkan nama mereka ketika memberikan hasil untuk panggilan sistem yang digunakan untuk mendapatkan daftar direktori. Seperti yang dijelaskan sergut dalam jawabannya, file yang dimulai dengan titik tidak benar-benar disembunyikan.
(Ini juga bagaimana rootkit dapat menyembunyikan file mereka: mereka menghubungkan ke panggilan sistem yang menghasilkan daftar direktori, dan menyaring file yang ingin mereka sembunyikan.)
Sebagai contoh, dalam sistem file Oracle ACFS cluster, direktori
<filesystem mountpoint>/.ACFS/
tersebut benar-benar tersembunyi: tidak akan terdaftar sama sekali, bahkan tidak denganls -a
. Tetapi jika Anda tahu itu ada di sana, Anda dapat mengaksesnya dengan baik.Jika Anda menggunakan fitur snapshot dari sistem file ACFS, Anda dapat mengakses snapshot sistem file yang ada dari sistem file tersebut melalui
.ACFS
direktori itu. Jika tidak disembunyikan, program cadangan mungkin akan mencadangkan konten sistem file saat ini dan konten snapshot yang ada, yang mungkin tidak diinginkan; biasanya Anda ingin mencadangkan keadaan saat ini atau keadaan satu snapshot tertentu.sumber