10

Can I use find to find all files which have extended attributes set? Let's say, I want to find all files with +i, immutable attribute in /foo and its subfolders.

I could not find any, mention of extended attributes in man find.

Is there any other way to find all files with attributes

I am using Debian Wheezy

4
  • 2
    @DopeGhoti, I was about to provide the link to Gille's answer. It uses find method. The link to Gille's answer is this one.
    – Ramesh
    Oct 15, 2014 at 20:56
  • 7
    BSD find (the same that comes with Mac OS) has both -xattr and -xattrname options to deal with extended attributes. To find files that have extended attributes set you can just use something like find . -xattr -exec xattr -v {} \;. Use -xattrname to search for specific attributes. Oct 7, 2016 at 9:49
  • To delete an attribute by name for example: find ~/some-path/ -xattrname com.apple.FinderInfo -exec xattr -d com.apple.FinderInfo {} \;
    – Benno
    Jan 8, 2018 at 7:45
  • @ClaudioFloreani Do you have a source for that? I can't find -xattr in any manpage from MacOS, FreeBSD or OpenBSD.
    – Artefact2
    Aug 29, 2018 at 13:11

1 Answer 1

4

find itself doesn't support extended atttribute but you can use such as:

find ~/ -type f  -iname "*" -exec lsattr {} + | grep  -v -- '-------------'
2
  • This would be very slow as it runs lsattr for every single file, and there is no need to match * - use this instead: find /foo -type f -print0 | xargs -0 lsattr | grep -v -- '-------------' Oct 9, 2021 at 19:28
  • 1
    Actually looking at the other answer (this one is a duplicate) lsattr supports the -R switch (recursive). Oct 9, 2021 at 19:30

Not the answer you're looking for? Browse other questions tagged or ask your own question.