OS X 'terminalindeki “ls” çıktısındaki @ ne anlama geliyor?


81

Bir lsdizinde bir yaptığınızda aşağıdaki çıktıyı alıyorum:

drwxr-xr-x@ 12 xonic  staff    408 22 Jun 19:00 .
drwxr-xr-x   9 xonic  staff    306 22 Jun 19:42 ..
-rwxrwxrwx@  1 xonic  staff   6148 25 Mai 23:04 .DS_Store
-rw-r--r--@  1 xonic  staff  17284 22 Jun 00:20 filmStrip.cpp
-rw-r--r--@  1 xonic  staff   3843 21 Jun 21:20 filmStrip.h

Ne @anlama geldiğini merak ediyordum .



1
xattr -r -d com.apple.TextEncoding *Yerel olarak oluşturulan bir C ++ üstbilgi veya kaynak dosya gibi bir metin dosyası varsa muhtemelen kaldıracak . Eğer indirdiyseniz, xattr -r -d com.apple.quarantine *muhtemelen kaldırırsınız, böylece Makefile düzenleme gibi şeyler yapabilirsiniz. Nedense, elma vermez bir Makefile düzenlemenize izin fakat vermez , sen bir Makefile çalıştırılmasına izin com.apple.quarantine. Rakam git ...
jww

Yanıtlar:


75

Dosyanın genişletilmiş özniteliklere sahip olduğunu gösterir. ls -l@Onları görmek için kullanın .

xattrBu özellikleri düzenlemek için kullanabilirsiniz . xattr -hBunun için size yardımcı olacak.


8
Teşekkürler. com.apple.quarantine bulundu, işte bu, ne olduğu ve tamlık uğruna bununla nasıl başa çıkılacağı: superuser.com/questions/28384/…
xon1c

24

Başımın üstünde, genişletilmiş özniteliklere sahip dosyayla bir ilgisi olduğunu düşünüyorum. Benzer bir tartışmanın bağlantısı:

http://discussions.apple.com/thread.jspa?messageID=5791060

Öyleyse, bir ls yaparken "@" olan bir dosya görürseniz, şunu yapmayı deneyin:

xattr -l <filename>

Bu size genişletilmiş öznitelikleri göstermelidir.

Daha fazla ayrıntı için xattr'ın yardımını kontrol edebilirsiniz:

xattr --help
usage: xattr [-l] file [file ...]
       xattr -p [-l] attr_name file [file ...]
       xattr -w attr_name attr_value file [file ...]
       xattr -d attr_name file [file ...]

The first form lists the names of all xattrs on the given file(s).
The second form (-p) prints the value of the xattr attr_name.
The third form (-w) sets the value of the xattr attr_name to attr_value.
The fourth form (-d) deletes the xattr attr_name.

options:
  -h: print this help
  -l: print long format (attr_name: attr_value)

"-L" ile ek özniteliklere bakarsanız ve "-d" ile kaldırırsanız, muhtemelen istediğiniz şeyi yapacaktır. İlk önce geçici bir dizinde bunu uygulayın ve çalıştığından emin olun;)


Çok teşekkürler! Söz konusu dizinin com.apple.quarantine olarak işaretlenmiş gibi göründüğü gibi, tehlikeli komut dosyalarına ve uygulamalara karşı koruma sağlamak için bir güvenlik önlemidir. Bu muhtemelen dizinde listelenmeyen bir soruna neden olamaz. : / Daha fazla etrafa bakacağım ve eğer bulursam çözümü göndereceğim.

20

Mac OS 10.6.1'deki ls (1) kılavuz sayfasından:

Dosya veya dizinin genişletilmiş öznitelikleri varsa, -l seçeneğinin basdığı ​​izin alanını '@' karakteri izler. Aksi takdirde, dosya veya dizin genişletilmiş güvenlik bilgisine (erişim kontrol listesi gibi) sahipse, -l seçeneğiyle yazdırılan izin alanını '+' karakteri izler.

Mevcut seçenekler listesinden:

 -@      Display extended attribute keys and sizes in long (-l) output.

 -e      Print the Access Control List (ACL) associated with the file, if present, in long (-l) output.

Bunlar, genişletilmiş seçeneklerin değerini görmenize izin verir. FWIW, ACL bilgisi, muhtemelen zaten bildiğiniz chmod (1) yardımcı programını kullanarak ayarlanabilir. :-)

Genişletilmiş özelliklere sahip herhangi bir şey yapmanın komut satırından kolay bir yolu görünmüyor.


2
Genişletilmiş özellikler xattr komutuyla görüntülenebilir ve değiştirilebilir (yalnızca OS X v10.5 ve .6'da kullanılabilir). Erkek sayfası görünmüyor, ancak xattr -hiç yardımını yazdıracak.
Gordon Davisson

xattrArtık bir man sayfası var ve xattr -l filetüm özellikleri listelemek veya xattr -p attribute_name filebelirli bir özelliği yazdırmak için kullanabilirsiniz.
Lri,

9

Gönderen ls man sayfası :

-L seçeneği verilirse, her dosya için aşağıdaki bilgiler görüntülenir: dosya modu, bağlantı sayısı, sahip adı, grup adı, dosyadaki bayt sayısı, kısaltılmış ay, ayın günü dosyası en son değiştirildi, en son değiştirilen saat dosyası, en son değiştirilen dakika dosyası ve yol adı.

Ek olarak, içeriği görüntülenen her bir dizin için, dizin içindeki dosyalar tarafından kullanılan toplam 512 bayt blok sayısı, dizindeki dosyaların bilgilerinden hemen önce bir satırda görüntülenir.

Dosya veya dizinin genişletilmiş öznitelikleri varsa, -l seçeneğinin basdığı ​​izin alanını '@' karakteri izler. Aksi takdirde, dosya veya dizin güvenlik bilgisini (erişim kontrol listesi gibi) genişletmişse, -l seçeneği ile yazdırılan izinler alanı açılır ve ardından '+' karakteri ile indirilir.

kullanın:

ls -la@e

Bu özniteliklere / bilgilere sahip dosyalar veya dizinler hakkında daha fazla bilgi için.


8

Bu, genişletilmiş özellikler ve erişim kontrolü ile ilgilidir.

Suns man sayfasından :

İzinlerden sonraki karakter bir ACL veya genişletilmiş nitelikler göstergesidir. Bu karakter, genişletilmiş öznitelikler dosyayla ilişkilendirilmişse ve - @ seçeneği etkinse, bir @ ifadesidir. Aksi takdirde, bu karakter önemsiz olmayan bir ACL dosyayla ilişkilendirilmişse bir artı işareti (+) karakteridir veya değilse bir boşluk karakteridir.


7

"@", Dosyanın kendisiyle ilişkilendirilmiş "genişletilmiş özniteliklere" sahip olduğu anlamına gelir.

" ls -@ -l" Yaparsanız, her dosya için hangi özelliklerin bulunduğunu görebilirsiniz. xattr -l pgsql.soBelirli bir dosyanın özniteliklerini atmak için " " gibi bir şey de yapabilirsiniz .

Tipik olarak eski okul FinderInfo, metin kodlama bilgileri veya "Bu dosya web'den indirildi, açmak istediğinizden emin misiniz" ifadesini veren "karantina" bilgileri gibi şeylerdir. uyarı.


1
Genişletilmiş özellikler mac platformuna özgü değildir. Bir dizi işletim sistemi bu dosya düzeyinde özelliği desteklemektedir.
Stefan Kendall

@iftrue: sonuçta bir dosya sistemi özelliği.
Joey,

6

Gönderen man sayfalarınals :

Uzun Format
[…] Dosya veya dizinin genişletilmiş nitelikleri varsa, -lseçenek tarafından yazdırılan izin alanını ' @' karakteri izler . [...]


2
'@' Dosyasının, dosya / dizinin kendisiyle ilişkilendirilmiş bir ACL'ye sahip olduğunu belirtmek için normalde bulunacak olan '+' işaretini de gizleyebileceğini unutmayın. 'Ls -le @ O' komutunu deneyin - bu, xattr'leri, ACL'yi (varsa) ve ayrıca tüm bayrakları listeler.
Gordon Davisson
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.