Terminal command to get all of a file's metadata?
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.).
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.extension
-
mdls
stands for Metadata List and you can look at the man pages (man mdls
) to learn how to use it.
-
-
xattr path/file.extension
-
xattr
stands for Extended Attributes. This can be used to display and edit extended attributes of files. -
xattr -l path/file.extension
causes 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.extension
-
ls
is 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
exiftool
separately if you haven't already. For example, if you usebrew
, you can dobrew install exiftool
. -
exiftool
is a useful utility for viewing and messing around with file metadata.
- You need to install
-
sips -g all path/file.extension
(for images)-
sips
andidentify
are 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.
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