find files with extended attributes

13,589

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

find ~/ -type f  -iname "*" -exec lsattr {} + | grep  -v -- '-------------'
Share:
13,589

Related videos on Youtube

Tam Borine
Author by

Tam Borine

Updated on September 18, 2022

Comments

  • Tam Borine
    Tam Borine almost 2 years

    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

    • Admin
      Admin over 9 years
      @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.
    • Admin
      Admin over 7 years
      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.
    • Admin
      Admin over 6 years
      To delete an attribute by name for example: find ~/some-path/ -xattrname com.apple.FinderInfo -exec xattr -d com.apple.FinderInfo {} \;
    • Admin
      Admin almost 6 years
      @ClaudioFloreani Do you have a source for that? I can't find -xattr in any manpage from MacOS, FreeBSD or OpenBSD.
  • Thomas Guyot-Sionnest
    Thomas Guyot-Sionnest over 2 years
    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 -- '-------------'
  • Thomas Guyot-Sionnest
    Thomas Guyot-Sionnest over 2 years
    Actually looking at the other answer (this one is a duplicate) lsattr supports the -R switch (recursive).