Is there any way to get all of the metadata associated with a file in Terminal? By "metadata" I mean things metadata and properties that are not stored in nor derived from the file's contents (i.e., checksum, UTD, image resolution, etc.), but rather reside in the filesystem's data about the file (i.e., last time changed, inode, permissions, extended attributes, etc.).
2 Answers
This response might be late, but hopefully it will help someone.
There are numerous ways to view metadata in the terminal on an Apple computer:
mdls path/file.extensionmdlsstands for Metadata List and you can look at the man pages (man mdls) to learn how to use it.
xattr path/file.extensionxattrstands for Extended Attributes. This can be used to display and edit extended attributes of files.xattr -l path/file.extensioncauses the attribute names and values to be displayed. However, I've noticed that, at least on macOS, it seems that this only displays user-added data.
ls -l@ path/file.extensionlsis a powerful terminal listing utility. In its simplest form it lists the current directory contents. However, as you can see here you can list more than that.
exiftool path/file.extension- You need to install
exiftoolseparately if you haven't already. For example, if you usebrew, you can dobrew install exiftool. exiftoolis a useful utility for viewing and messing around with file metadata.
- You need to install
sips -g all path/file.extension(for images)sipsandidentifyare both for reading image metadata/info.
identify -verbose path/file.extension(for images)
Depending on your desired application, one of these might be more appropriate or convenient than the others. However, it should be noted that these all show different things, even if slightly.
-
2👏👏👏 This answer is *chef's kiss* perfect. Thank you, exactly what I was looking for, and more!– dossyNov 17, 2021 at 19:53
I mean, ls can give you a lot of information with the -l flag
[email protected]:~# ls -l .bashrc
total 6980
-rw-r-----. 1 user user 14499 Jan 6 17:59 .bashrc
There is your last touched, owner, group, and permissions; then there is md5sum for that:
[email protected]:~# md5sum .bashrc
2aa4f74675fa647d23d3dbbe31e9c4d1 .bash_history
-
adding a
-iflag to the ls invocation will print inode information as well– crasicJan 7, 2016 at 6:07