Co oznacza @ na wyjściu „ls” na terminalu OS X?

81

Podczas wykonywania lsw katalogu otrzymuję następujące dane wyjściowe:

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

Zastanawiałem się, co to @znaczy.

xon1c
źródło
1
xattr -r -d com.apple.TextEncoding *prawdopodobnie go usunie, jeśli jest to plik tekstowy, taki jak nagłówek C ++ lub plik źródłowy, utworzony lokalnie. Jeśli go pobrałeś, xattr -r -d com.apple.quarantine *najprawdopodobniej go usunie, abyś mógł np. Edytować plik Makefile. Z jakiegoś powodu, Apple nie pozwala na edycję Makefile, ale nie pozwalają uruchomić Makefile, z com.apple.quarantine. Idź rysunek ...
jww
Zobacz także: apple.stackexchange.com/questions/42177/...
hippietrail

Odpowiedzi:

75

Wskazuje, że plik ma rozszerzone atrybuty. Użyj, ls -l@aby je zobaczyć.

Możesz użyć xattrdo edycji tych atrybutów. xattr -hda ci bezpośrednią pomoc w tym zakresie.

Ignacio Vazquez-Abrams
źródło
8
dzięki. znaleziono com.apple.quarantine, oto co to jest i jak sobie z tym poradzić ze względu na kompletność: superuser.com/questions/28384/…
xon1c
24

Wydaje mi się, że ma to coś wspólnego z plikiem z dostępnymi rozszerzonymi atrybutami. Oto link do podobnej dyskusji:

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

Więc jeśli widzisz plik z „@” podczas wykonywania ls, spróbuj zrobić to:

xattr -l <filename>

To powinno pokazać rozszerzone atrybuty.

Możesz sprawdzić pomoc xattr, aby uzyskać więcej informacji:

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)

Wygląda na to, że jeśli spojrzysz na dodatkowe atrybuty za pomocą „-l”, a następnie usuniesz je za pomocą „-d”, prawdopodobnie zrobi to, co chcesz. Poćwicz to najpierw w katalogu tymczasowym i upewnij się, że działa;)

Brent pisze kod
źródło
Wielkie dzięki! Wydaje się, że dany katalog został oznaczony jako com.apple.quarantine, co stanowi środek bezpieczeństwa w celu ochrony przed podejrzanymi skryptami i aplikacjami z sieci. To nie może spowodować problemu z brakiem katalogu. : / Rozejrzę się i opublikuję rozwiązanie, jeśli je znajdę.
20

Ze strony podręcznika ls (1) w systemie Mac OS 10.6.1:

Jeśli plik lub katalog ma rozszerzone atrybuty, po polu uprawnień wydrukowanym za pomocą opcji -l następuje znak „@”. W przeciwnym razie, jeśli plik lub katalog ma rozszerzone informacje o bezpieczeństwie (takie jak lista kontroli dostępu), po polu uprawnień wydrukowanym za pomocą opcji -l następuje znak „+”.

Z dostępnej listy opcji:

 -@      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.

Umożliwi to wyświetlenie wartości tych rozszerzonych opcji. Informacje FWIW, ACL można ustawić za pomocą tego samego narzędzia chmod (1), o którym zapewne już wiesz. :-)

Wydaje się, że nie ma łatwego sposobu, aby z wiersza poleceń zrobić cokolwiek z rozszerzonymi atrybutami.

Ed Carrel
źródło
2
Rozszerzone atrybuty mogą być przeglądane i manipulowane za pomocą polecenia xattr (dostępne tylko w OS X 10.5 i .6). Wygląda na to, że nie ma strony podręcznika, ale xattr -hwydrukuje pomoc wewnętrzną.
Gordon Davisson,
xattrma teraz stronę podręcznika i możesz użyć, xattr -l fileaby wyświetlić listę wszystkich atrybutów lub xattr -p attribute_name filewydrukować określony atrybut.
Lri
9

Ze strony podręcznika dla ls :

Jeśli podano opcję -l, dla każdego pliku wyświetlane są następujące informacje: tryb pliku, liczba dowiązań, nazwa właściciela, nazwa grupy, liczba bajtów w pliku, miesiąc skrócony, plik dnia miesiąca był ostatnio modyfikowany, plik godziny ostatniej modyfikacji, plik minuty ostatniej modyfikacji oraz nazwa ścieżki.

Ponadto dla każdego katalogu, którego zawartość jest wyświetlana, całkowita liczba 512-bajtowych bloków używanych przez pliki w katalogu jest wyświetlana sama w wierszu, bezpośrednio przed informacją o plikach w katalogu.

Jeśli plik lub katalog ma rozszerzone atrybuty, po polu uprawnień wydrukowanym za pomocą opcji -l następuje znak „@”. W przeciwnym razie, jeśli plik lub katalog ma rozszerzone informacje o bezpieczeństwie (takie jak lista kontroli dostępu), pole uprawnień wydrukowane za pomocą opcji -l jest śledzone, a po nim następuje znak „+”.

Posługiwać się:

ls -la@e

aby uzyskać więcej informacji na temat plików lub katalogów z tymi atrybutami / informacjami.


źródło
8

Jest to związane z rozszerzonymi atrybutami i kontrolą dostępu.

Ze strony manuala sun ls :

Znak po uprawnieniach jest wskaźnikiem ACL lub rozszerzonym atrybutem. Ten znak jest znakiem @, jeśli rozszerzone atrybuty są powiązane z plikiem i obowiązuje opcja - @. W przeciwnym razie znak ten jest znakiem plus (+), jeśli z plikiem skojarzona jest nietrywialna lista ACL lub spacja, jeśli nie.

Andre Miller
źródło
7

„@” Oznacza, że ​​plik ma „rozszerzone atrybuty” z nim związane.

Jeśli wykonasz „ ls -@ -l”, możesz zobaczyć, jakie atrybuty istnieją dla każdego pliku. Możesz także zrobić coś takiego jak „ xattr -l pgsql.so”, aby zrzucić atrybuty określonego pliku.

Zazwyczaj są to rzeczy takie jak oldschoolowe FinderInfo, informacje o kodowaniu tekstu lub informacje o „kwarantannie”, które dają ci „Ten plik został pobrany z Internetu, czy na pewno chcesz go otworzyć?” ostrzeżenie.

David Gelhar
źródło
1
Rozszerzone atrybuty nie są unikalne dla platformy Mac. Wiele systemów operacyjnych obsługuje tę funkcję na poziomie plików.
Stefan Kendall
@iftrue: ostatecznie jest to jednak funkcja systemu plików.
Joey,
6

Ze strony podręcznika użytkownikals :

Długi format
[…] Jeśli plik lub katalog ma rozszerzone atrybuty, po polu uprawnień wydrukowanym przez -lopcję występuje znak „ @”. […]

Gumbo
źródło
2
Zauważ, że „@” może również ukryć „+”, który normalnie by tam był, wskazując, że plik / katalog ma z nim powiązaną listę ACL. Wypróbuj 'ls -le @ O' - wyświetli się xattrs, ACL (jeśli jest obecny), a także wszelkie flagi.
Gordon Davisson,