You can make a difference in the Apple Support Community!

When you sign up with your Apple Account, you can provide valuable feedback to other community members by upvoting helpful replies and User Tips.

Meaning of the character '@' in output running 'ls -l'

I've been working with cron and crontab on MacO's Sonomia and the shell expansion for the standard data or DATE command today. Lost time in the end, because the last post in the thread https://serverfault.com/questions/45066/os-x-cron-and-environment-variables made me realize once again, MacOS is different and I can't compare it with Linux, the differences and peculiarities are serious. Well, I'll just write .plist files to do my tasks, if that's the way it should be.


I am in folder /Users/ME/Library/LaunchAgents, the output of 'ls -l' shows:


-rw-r--r--@ 1 ME staff 300 12 Dec 23:44 com.DigiDNA.iMazing2Mac.Mini.plist

-rw-r--r--@ 1 ME staff 485 25 Nov 08:51 com.adobe.connectDetector.plist

-rw-r--r--@ 1 ME staff 693 14 Dec 09:34 io.podman_desktop.PodmanDesktop.plist


My Linux knowledge should be solid by now, but I have to pass on the '@'.


Someone wrote somewhere, do 'ls -e'. According to the manpage (whereis ls) .. ls(1), '-e Print the Access Control List (ACL) associated with the file, if present, in long (-l) output.'. Then I try 'ls -l@':


-rw-r--r--@ 1 ME staff 300 12 Dec 23:44 com.DigiDNA.iMazing2Mac.Mini.plist

com.apple.provenance 11 


-rw-r--r--@ 1 ME staff 485 25 Nov 08:51 com.adobe.connectDetector.plist

com.apple.provenance 11 


-rw-r--r--@ 1 ME staff 693 14 Dec 09:34 io.podman_desktop.PodmanDesktop.plist

com.apple.provenance 11 


-rw-r--r--@ 1 ME staff 401 14 Dec 18:44 me.technology.dailyZshHistory.plist

com.apple.lastuseddate#PS 16 


And what does that tell me?

MacBook Pro (M2 Pro, 2023)

Posted on Dec 14, 2024 10:25 AM

Reply
Question marked as Top-ranking reply

Posted on Dec 16, 2024 7:15 AM

folkertmeeuw wrote:

I'm preparing for LPIC exams. In Numbers I do a compare sheet between OS (Debian, Ubuntu, Fedora, MacOS, Solaris) and the commands. Sheet has now 355 lines and I'm not finished yet.


For those platforms that meet The Open Group UNIX specs, you will have a subset of similarity.


Outside of that, they’ll often differ.


Having created a whole lot of platform comparison spreadsheets over the aeons, those spreadsheets are less than useful.


Outside of homework, that is.


For portable apps or when porting OSs I’ll usually go with a consistent subset of features from platform hardware and OS software, and from compilers, and a shim for the platform differences. Which unfortunately starts looking like any other platform portability layer; what amounts to a hardware abstraction layer or HAL.


355 is not even a fraction of the scale and scope.

20 replies
Question marked as Top-ranking reply

Dec 16, 2024 7:15 AM in response to folkertmeeuw

folkertmeeuw wrote:

I'm preparing for LPIC exams. In Numbers I do a compare sheet between OS (Debian, Ubuntu, Fedora, MacOS, Solaris) and the commands. Sheet has now 355 lines and I'm not finished yet.


For those platforms that meet The Open Group UNIX specs, you will have a subset of similarity.


Outside of that, they’ll often differ.


Having created a whole lot of platform comparison spreadsheets over the aeons, those spreadsheets are less than useful.


Outside of homework, that is.


For portable apps or when porting OSs I’ll usually go with a consistent subset of features from platform hardware and OS software, and from compilers, and a shim for the platform differences. Which unfortunately starts looking like any other platform portability layer; what amounts to a hardware abstraction layer or HAL.


355 is not even a fraction of the scale and scope.

Dec 14, 2024 3:31 PM in response to folkertmeeuw

Did you look at the man page for ls? It explains all of that.

See the explanation of the "Long Format."


Perhaps you have the Problem Problem?

You have a problem you don't know how to fix, but you think it is related to something else that you try and you have a problem with that. You then post here asking about the second problem instead of just asking about the actual problem. It seems that problem might be differences between Linux and Unix--there are many, most subtle. I don't know much at all about Linux, but I do know you can't take a Linux example and expect it to work on Unix.


Dec 14, 2024 4:26 PM in response to folkertmeeuw

folkertmeeuw wrote:

I've been working with cron and crontab on MacO's Sonomia and the shell expansion for the standard data or DATE command today. Lost time in the end, because the last post in the thread https://serverfault.com/questions/45066/os-x-cron-and-environment-variables made me realize once again, MacOS is different and I can't compare it with Linux, the differences and peculiarities are serious. Well, I'll just write .plist files to do my tasks, if that's the way it should be.

It isn't. Don't believe what you read on the internet. Especially things written 15 years ago about an OS that now gets updated yearly.

And what does that tell me?

Those are just extended attributes. Regardless of whether you want to use cron or launchd directly, extended attributes don't matter.

Dec 16, 2024 9:14 AM in response to folkertmeeuw

folkertmeeuw wrote:

Yes I did! But wasn't helpful. Could it be that the '@' can be observed, when launchctl load, enable or start is called?

You didn’t read the part where the @ means there are extended attributes which is what you asked about. If your question was about extended attributes, probably look for a book about the Mac OS Extended or Apple File Systems.

Dec 30, 2024 7:54 AM in response to folkertmeeuw

folkertmeeuw wrote:

Not quite a problematic problem. It is partial knowledge for the LPIC-1 certification.


LPIC?


Again, though Linux was very much inspired by and shares with various similarities to UNIX, Linux is in its own and very separate part of the operating family system tree.


If you want to learn macOS or another BSD-descended UNIX, or Open Group UNIX, a Linux material is far from the best path. It’ll be inapplicable to many details, at best. Apple has certification material that will be much closer to macOS reality, as will Open Group UNIX certification materials. This if you want to follow the certification path.


Dec 30, 2024 9:50 AM in response to folkertmeeuw

folkertmeeuw wrote:

Thx for answering. Spreadsheets aren't useful when used for comparing. You could be right. But knowing only the names of 360 commands by heart is to hart, to me too. I didn't the difference between systemctl and launchctl before.

The fact that 355 commands are not even close to sufficient can be very good. But it should be sufficient for LPIC-1 certification.

Apparently LPIC stands for Linux Professional Institute Certification. You are totally on the wrong track here. If you want to learn Linux, you can install a Virtual Machine like VirtualBuddy and install Linux that way.


For the record, macOS ships with over 1612 command-line tools.

Dec 14, 2024 10:51 AM in response to folkertmeeuw

And when is it created?


Now I see, when I execute 'ls -l@':                                                       


total 32


-rw-r--r--@ 1 ME  staff  300 12 Dez 23:44 com.DigiDNA.iMazing2Mac.Mini.plist


com.apple.provenance 11 


-rw-r--r--@ 1 ME  staff  485 25 Nov 08:51 com.adobe.connectDetector.plist


com.apple.provenance 11 


-rw-r--r--@ 1 ME  staff  693 14 Dez 09:34 io.podman_desktop.PodmanDesktop.plist


com.apple.provenance 11 


-rw-r--r--@ 1 ME  staff  401 14 Dez 18:44 me.technologie.dailyZshHistory.plist


com.apple.lastuseddate#PS 16 

Dec 14, 2024 4:51 PM in response to folkertmeeuw

While I’ve used cron and periodic, launchd is usually preferred to cron and crontab. I usually use Lingon app to manage the plist files too, but there are other ways.


i’m not sure why you refer to “Linux knowledge” there, either. macOS is in the BSD part of the UNIX family tree, and is somewhat distant from Linux. Solaris and HP-UX are also distant from macOS, though those are distant in different directions.


com.apple.provenance means the file cleared quarantine. That xattr extended attribute is not relevant to the plist functioning as a plist with launchd.

Dec 30, 2024 6:43 AM in response to MrHoffman

Thx for answering. Spreadsheets aren't useful when used for comparing. You could be right. But knowing only the names of 360 commands by heart is to hart, to me too. I didn't the difference between systemctl and launchctl before.


The fact that 355 commands are not even close to sufficient can be very good. But it should be sufficient for LPIC-1 certification.

Dec 30, 2024 6:52 AM in response to Barney-15E

That was a big mistake on my part. Writing a .plist snippet to move my .zsh_history file every morning at 7am in the hope that a new .zsh_history file will create itself. This demolished the first .zsh_history file with more than 5000 entries. I advise everyone not to repeat this mistake. I am happy to provide the .plist file here if you are interested.

Meaning of the character '@' in output running 'ls -l'

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple Account.