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.).
Asked
Active
Viewed 7.7k times
51
-
Check out the 'stat' command, and 'mdls' for spotlight metadata. 'ls' also has '-e' and '-@' options that give more info when used with the '-l' option. – mtklr Jan 07 '16 at 14:24
2 Answers
87
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.
-
3This answer is *chef's kiss* perfect. Thank you, exactly what I was looking for, and more! – dossy Nov 17 '21 at 19:53
2
I mean, ls can give you a lot of information with the -l flag
user@example.com:~# 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:
user@example.com:~# md5sum .bashrc
2aa4f74675fa647d23d3dbbe31e9c4d1 .bash_history
Matt Clark
- 392
-
adding a
-iflag to the ls invocation will print inode information as well – crasic Jan 07 '16 at 06:07