Bazı dosya ve klasörler neden gizlidir?


12

/home/userKullanıcıların bir şeylerle uğraşmasını önlemek için dizindeki dosya ve klasörleri gizlemenin mantığını anlayabiliyorum . Ancak, aynı gerekçe dosyalara nasıl uygulanabileceğini görmüyorum /etc, /bootve /varyöneticilerin etki alanıdır dizinleri.

Sorum şu: Bazı dosya ve klasörler neden yöneticilerden gizleniyor? Misal:

/boot/.vmlinuz-3.11.1-200.fc20.x86_64.hmac
/etc/.pwd.lock
/etc/selinux/targeted/.policy.sha512
/etc/.java
/etc/.java/.systemPrefs
/etc/skel/.bash_profile
/root/.ssh
/root/.config
/var/cache/yum/x86_64/20/.gpgkeyschecked.yum
/var/spool/at/.SEQ
/var/lib/pear/.filemap


1
ikinci cevaba bak. Listelediğiniz dosyaların nedeni ya günlük olarak değiştirilmemesi gereken yapılandırma dosyalarıdır ve her zaman .ssh ve .bash_profile olarak bulunurlar, böylece orada olduklarını bilmek istemezsiniz.
Makaradaki

3
.ssh ve .config, ister normal kullanıcının ana dizininde ister kök kullanıcının ana dizininde olsun, her zaman bu şekilde adlandırılır. / etc / skel, yeni kullanıcıların ev dizinleri için bir prototip olmalı ve dosyalar yeni oluşturulan dizinlerde olduğu gibi aynı adlara sahip.
Mark Plotnick

2
Ancak bu dosyalar gizli değildir . lsKomut sadece varsayılan olarak bir nokta ile başlayan olmayan liste dosyaları (bkz yapar info ls) - bu yazılımın bu özel parçasının tasarım.

1
@ illuminÉ: Öyleyse, "varsayılan olarak gösterilmiyor" olarak "gizli" ifadesini tam olarak nasıl tanımlarsınız? Bunun sadece bir özellik olmadığını unutmayın ls; Ayrıca, önde gelen nokta kalıba açıkça dahil edilmediği sürece glob'ların kabuk genişletmesi bu dosyaları içermez ve "Gizli dosyaları göster" seçeneğini belirlemediğiniz sürece genellikle dosya yöneticileri bunları göstermez (evet, seçenek bu terimi kullanmaz).
celtschk

Yanıtlar:


15

"Gizli dosyalar" için birincil mantığı yanlış yorumladınız. O değil

kullanıcıların bir şeylerle uğraşmasını önlemek için.

Her ne kadar bir "nokta dosyasının" ne olduğunu öğrenene kadar çok yeni kullanıcılar için bu sonuca sahip olabilir ( nokta dosyası ve nokta dizini "gizli" den daha uygun ve özel terimlerdir). Kendi başına bir şeylerle uğraşmanızı engellemez - izinler bunun içindir. Belki de yeni kullanıcılara bunun ne olduğunu anlayana kadar uğraşmamaları gereken bir şey olduğunu belirtmeye yardımcı olur.

Böylece nokta önekini bir tür dosya soneki olarak düşünebilirsiniz - dikkat etmelerine rağmen, genellikle bunlardan birine sahip değildir. Bu dosyanın genel tarama için ilgi çekici olmadığını, bu nedenle lsdosya tarayıcılarının genellikle görüntülemeyeceğini gösterir. Bununla birlikte, bir sonek yerine bir önek olduğundan ls -a, hepsini birlikte listelenenleri görmek için, sözcükleri ( ) sözlükbilimsel sırayla görüntülediğinizde ek bonus vardır .

Bunun gibi bir dosyanın normal amacı bir uygulama tarafından kullanım içindir (örn. Yapılandırma). Bunları doğrudan kullanmanız veya hatta farkında olmanız gerekmez.

Yani, bu "gizleme", kelimenin tam anlamıyla dağınıklığı azaltmak ve kavramsal olarak bazı organizasyonlar sağlamak için dosyayı kullanıcıdan gizlemek gibi bir amaç değildir.


Cevabınız için teşekkürler. Bu dosyaların daha az öneme sahip olduğu ve dolayısıyla dağınıklığı azaltmak için gizlendiği anlamına mı geliyor?
Question Overflow

1
Sanırım bu sizin bakış açınıza bağlı. Dosyanın öneminin (muhtemelen) ne olduğu hakkında bir şey söylüyor. Ana dizinlerde kullanıcı başına yapılandırmalar için kullanılırlar , ancak dizinlerde genellikle dizin yapılandırmasını belirtmek için de kullanılırlar . İki örnek: git gibi sürüm kontrol sistemleri bunları kullanacaktır; zaman gitbelirli bir dizini tarayan bir varsa, .gitignoredosya mevcut, onu okur; ve başlattığınızda gdb, $PWD/.gdbinitvarsa bir dosya okuyacaktır ( ve bir ~/.gdbinitbaşka yaygın yöntem).
goldilocks

4

/etc/skelyeni kullanıcının ana dizinlerine kopyalanacak dosyalar içerir, bu nedenle adlar elbette bir kullanıcının ana dizinindeki ile aynıdır. Bu açıklıyor /etc/skel/.bash_profile. Dizin /rootaynı zamanda bir giriş dizini, yani kullanıcının giriş dizini root. Bu açıklıyor /root/.sshve /root/.config.

/etc/.pwd.lockkilit dosyası gibi görünüyor. Normalde kilit dosyaları ile ilgilenmezsiniz, bu nedenle gizli olması mantıklıdır.

Diğer dosyalar için, ne için olduklarını bilmiyorum, ama eminim neden gizlendiklerinin iyi bir açıklaması da var.

Ve elbette goldilocks, herkesin onlarla uğraşmasını önlemek için değil, Unix'in temel fikri, kullanıcının ne yaptığını bildiğini varsaymaktır), ancak dizin listelerinizi ( Her ne kadar ana dizindeki yapılandırma dosyaları için bir etcalt dizini daha iyi bir çözüm olarak düşünürdüm ).


+1 "giriş dizinindeki yapılandırma dosyaları" oldukça aptalca bir fikirdi. Sadece onları görmek istemediğinizde görünmek için gizlidirler.
maaartinus

3

Bu son derece opiniated cevap olabilir, ama ana nedeni düşünüyorum nokta dosyalarını ve dizinleri nokta böyle işaretlenmiştir değildir derisi veya gizleyebilir bunları - Bunun sadece kullanıcı haberdar etmenin düşünüyorum bu dosyalar ve dizinleri vardır içinde programın ve kullanıcı yıllardan bu veya programların kendileri tarafından değiştirilebilen ayarlar.

Nokta dosyalarının ve nokta dizinlerinin varsayılan olarak komut satırı tarafından lsve çoğu dosya yöneticisindeki görünümlerden çıkarılması gerçeği sadece bir metadır - kullanıcı tarafından istenmedikçe her şeyin iç / ayrıntılarını göstermek istemezsiniz; kullanıcı bir ayarı değiştirmek istiyorsa ve bunu bir GUI aracılığıyla yapamazsa, aradığı ayarı bir nokta dosyasında bulabilir .

eg> içinde $HOME/.vimrciçin yapılandırma ayarını bulacaksınız vim.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.