Ls "gizli" dosya bayrağı farkında olmak


12

Mac OS X'teki dosya işaretinden lshaberdar olmak mümkün müdür hidden?

Şu anda, basit bir ls -lOüretir:

$ ls -lO
total 0
drwxr-xr-x@  84 danielbeck  staff  -      2856 29 Mai 22:44 Applications
drwx------+ 158 danielbeck  staff  -      5372 29 Mai 15:27 Desktop
drwx------@ 250 danielbeck  staff  -      8500 30 Mai 20:40 Documents
drwx------+  11 danielbeck  staff  -       374 29 Mai 22:21 Downloads
drwx------@  84 danielbeck  staff  -      2856 29 Mai 22:48 Library
drwx------@   3 danielbeck  staff  hidden  102  3 Apr 20:45 Movies
drwx------@   5 danielbeck  staff  hidden  170  3 Apr 20:45 Music
drwx------+ 215 danielbeck  staff  -      7310 29 Mai 22:54 Pictures
drwxr-x---@   7 danielbeck  staff  hidden  238  3 Apr 20:45 Public
drwxr-xr-x@   4 danielbeck  staff  hidden  136 24 Apr 23:25 Sites

Üç çeşit görünürlük var: normal, görünür dosyalar, hiddendosya bayrağına sahip, aslında Terminal'de gizli olmayan dosyalar ve adları bir nokta ile başlayan gerçekten gizli dosyalar.

İşaretli ve dosyaları aynı şekilde lsişlemek için bir diğer ad veya güvenilir bir kabuk işlevi kullanmak , örneğin varsayılan olarak gizlemek ve Finder'ın değerine bağlı olarak nasıl davrandığına veya benzeri bir şekilde göstermenin bir yolu var mı?hidden.dothiddenls -Als -adefaults read com.apple.Finder AppleShowAllFiles

man chflagsÖzellikle hiddenbayrağın sadece GUI'den, yani Finder'dan gizlendiğini biliyorum .

Yanıtlar:


8

Bunlar, nokta dosyalarına benzer bir seçenek belirtilmedikçe gizli bayraklı lsdosyaları gizleyen bir OS X alma adımlarıdır .-a/-A

  1. Xcode'u yükleyin. Aşağıdaki Xcode 4.5.1 kullanıyorum.
  2. OS sürüm indirme libutilve file_cmdsgelen http://www.opensource.apple.com . Her paket listesi girişinin sağ tarafında bir indirme düğmesi bulunur. Bu kılavuz, farklı bir sürümdeyseniz OS X 10.8.2, YMMV için aşağıdaki tam adımlarla yazılmıştır.
  3. Her iki arşivi çıkartın.
  4. file_cmds.xcodeprojX kodunu açın ve lshedefi oluşturmak için seçin .

    Ekran görüntüsü

  5. Seç file_cmdssolda Xcode proje ve seçmek lsana alanda hedef. In Yapı ayarlar sekmesi için göz Başlık Arama Yolları içinde Başlıkları kategorisinde ve elde ettiğim yere klasörün yolunu ekleyin libutil.

    Ekran görüntüsü

  6. Dosyasını açın print.ciçinde lssol tarafta klasör ve diyor satırını kaldırın #include <membershipPriv.h>. Daha sonra dosyayı kaydedin. Bu gereken bir sebebi vardır içerdiğinden, bir şeyler kırmak ama henüz ne olduğunu belirlemiş değiller.

  7. Dosyasını açın ls.caynı klasörde ve söyleyen bir yorum için bakmak /* Only display dot file if -a/-A set. */içinde displayişlevi. Onu ve altındaki durumu aşağıdakilerle değiştirin:

    /* Only display dot file and file with hidden flag if -a/-A set. */
    sp = cur->fts_statp;
    if (((sp != NULL && (sp->st_flags & 0x8000)) || cur->fts_name[0] == '.') && !f_listdot) {
        cur->fts_number = NO_PRINT;
        continue;
    }
    
  8. Oluşturmak için Cmd- tuşuna basın B.

    Başarı!

  9. Soldan (klasör listesinin sonu) Ürünler'i seçin ve sağ tıklayın ls. Finder'da Göster'i seçin .

    Çıktı klasörü oluştur ekran görüntüsü

  10. lsYürütülebilir dosyayı uygun bir yere taşıyın , örneğin ana dizininiz. Ardından Terminal'i açın ve ana dizininizde sudo mv $HOME/ls /bin/lsyeni bir klasör oluşturun ve çalıştırın bin. PATHDaha sonra bu klasörü ekleyin .

Sonucu test etme:

$ mkdir test
$ cd test
$ touch foo bar
$ chflags hidden bar
$ /bin/ls -lO
total 0
-rw-r--r--@ 1 danielbeck  staff  hidden 0 25 Okt 22:25 bar
-rw-r--r--  1 danielbeck  staff  -      0 25 Okt 22:25 foo
$ $HOME/bin/ls -lO
total 0
-rw-r--r--  1 danielbeck  staff  - 0 25 Okt 22:25 foo
$ $HOME/bin/ls -A
bar foo
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.