Apa yang dimaksud dengan @ pada output "ls" pada terminal OS X '?

81

Ketika melakukan suatu lsdalam direktori saya mendapatkan output berikut:

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

Saya bertanya-tanya apa @artinya.

xon1c
sumber
1
xattr -r -d com.apple.TextEncoding *mungkin akan menghapusnya jika file teksnya, seperti header C ++ atau file sumber, dibuat secara lokal. Jika Anda mengunduhnya, maka xattr -r -d com.apple.quarantine *kemungkinan akan menghapusnya, sehingga Anda dapat melakukan hal-hal seperti mengedit Makefile. Untuk beberapa alasan, Apple tidak memungkinkan Anda untuk mengedit Makefile, tetapi tidak memungkinkan Anda untuk menjalankan Makefile, dengan com.apple.quarantine. Go figure ...
jww

Jawaban:

75

Ini menunjukkan bahwa file tersebut memiliki atribut yang diperluas. Gunakan ls -l@untuk melihatnya.

Anda dapat menggunakan xattruntuk mengedit atribut ini. xattr -hakan memberi Anda bantuan sebaris untuk itu.

Ignacio Vazquez-Abrams
sumber
8
Terima kasih. ditemukan com.apple.quarantine, di sini adalah apa itu dan bagaimana mengatasinya demi kelengkapan: superuser.com/questions/28384/…
xon1c
24

Dari atas kepala saya, saya pikir ada hubungannya dengan file yang memiliki atribut tambahan yang tersedia. Berikut tautan ke diskusi serupa:

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

Jadi jika Anda melihat file dengan "@" ketika Anda melakukan ls, coba lakukan ini:

xattr -l <filename>

Itu akan menunjukkan kepada Anda atribut yang diperluas.

Anda dapat memeriksa bantuan xattr untuk lebih jelasnya:

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)

Sepertinya jika Anda melihat atribut tambahan dengan "-l" dan kemudian menghapusnya dengan "-d" itu mungkin akan melakukan apa yang Anda inginkan. Praktekkan ini dalam direktori sementara di suatu tempat terlebih dahulu dan pastikan itu berfungsi;)

Brent Menulis Kode
sumber
Terima kasih banyak! Tampaknya direktori tersebut ditandai sebagai com.apple.quarantine, yang merupakan langkah keamanan untuk melindungi terhadap skrip dan aplikasi yang cerdik dari internet. Itu tidak mungkin menyebabkan masalah direktori tidak terdaftar. : / Saya akan melihat-lihat lebih banyak dan memposting solusi jika saya menemukannya.
20

Dari halaman manual ls (1) di Mac OS 10.6.1:

Jika file atau direktori memiliki atribut yang diperluas, bidang izin yang dicetak oleh opsi -l diikuti oleh karakter '@'. Jika tidak, jika file atau direktori telah memperluas informasi keamanan (seperti daftar kontrol akses), bidang izin yang dicetak oleh opsi -l diikuti oleh karakter '+'.

Dari daftar opsi yang tersedia:

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

Ini akan memungkinkan Anda melihat nilai dari opsi yang diperluas itu. FWIW, info ACL dapat diatur menggunakan utilitas chmod (1) yang sama yang mungkin sudah Anda sadari. :-)

Tampaknya tidak ada cara mudah dari baris perintah untuk melakukan apa pun dengan atribut yang diperluas.

Ed Carrel
sumber
2
Atribut yang diperluas dapat dilihat dan dimanipulasi dengan perintah xattr (hanya tersedia di OS X v10.5 dan .6). Tampaknya tidak memiliki halaman manual, tetapi xattr -hakan mencetak bantuan internalnya.
Gordon Davisson
xattrsekarang memiliki halaman manual, dan Anda dapat menggunakan xattr -l fileuntuk membuat daftar semua atribut atau xattr -p attribute_name fileuntuk mencetak atribut tertentu.
Lri
9

Dari halaman manual untuk ls :

Jika opsi -l diberikan, informasi berikut ini ditampilkan untuk setiap file: mode file, jumlah tautan, nama pemilik, nama grup, jumlah byte dalam file, disingkat bulan, file hari-bulan terakhir diubah, file jam terakhir dimodifikasi, file menit terakhir dimodifikasi, dan pathname.

Selain itu, untuk setiap direktori yang isinya ditampilkan, jumlah total blok 512-byte yang digunakan oleh file-file dalam direktori ditampilkan pada sebuah baris dengan sendirinya, tepat sebelum informasi untuk file-file dalam direktori.

Jika file atau direktori memiliki atribut yang diperluas, bidang izin yang dicetak oleh opsi -l diikuti oleh karakter '@'. Jika tidak, jika file atau direktori telah memperpanjang informasi keamanan (seperti daftar kontrol akses), bidang izin yang dicetak oleh opsi -l diikuti diikuti diikuti oleh karakter '+'.

Menggunakan:

ls -la@e

untuk informasi lebih lanjut tentang file atau direktori dengan atribut / informasi tersebut.


sumber
8

Ini terkait dengan atribut yang diperluas dan kontrol akses.

Dari halaman manual matahari ls :

Karakter setelah izin adalah indikator atribut ACL atau diperluas. Karakter ini adalah @ jika atribut diperluas dikaitkan dengan file dan opsi - @ berlaku. Jika tidak, karakter ini adalah karakter tanda tambah (+) jika ACL non-sepele dikaitkan dengan file atau karakter spasi jika tidak.

Andre Miller
sumber
7

"@" Berarti bahwa file tersebut memiliki "atribut diperluas" yang terkait dengannya.

Jika Anda melakukan " ls -@ -l", Anda dapat melihat atribut apa yang ada untuk setiap file. Anda juga dapat melakukan sesuatu seperti " xattr -l pgsql.so" untuk membuang atribut untuk file tertentu.

Biasanya itu hal-hal seperti FinderIn sekolah lama, info penyandian teks, atau info "karantina" yang memberi Anda "File ini diunduh dari web, Anda yakin ingin membukanya?" peringatan.

David Gelhar
sumber
1
Atribut yang diperluas tidak unik untuk platform mac. Sejumlah sistem operasi mendukung fitur tingkat file ini.
Stefan Kendall
@ iftrue: akhirnya ini adalah fitur sistem file.
Joey
6

Dari halaman manual darils :

Format Panjang
[...] Jika file atau direktori memiliki atribut yang diperluas, bidang izin yang dicetak oleh -lopsi diikuti oleh @karakter ' '. [...]

Gumbo
sumber
2
Perhatikan bahwa '@' juga dapat menyembunyikan '+' yang biasanya ada di sana untuk menunjukkan bahwa file / direktori memiliki ACL yang terkait dengannya. Coba 'ls -le @ O' - yang akan mencantumkan xattrs, ACL (jika ada), dan juga semua flag.
Gordon Davisson