diff options
Diffstat (limited to 'functions/rsxattr.fish')
| -rw-r--r-- | functions/rsxattr.fish | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/functions/rsxattr.fish b/functions/rsxattr.fish new file mode 100644 index 0000000..4101890 --- /dev/null +++ b/functions/rsxattr.fish @@ -0,0 +1,29 @@ +function rsxattr --description 'Recursively delete all user xattrs' + +if not command -sq 'find' + echo "Can't find find." + return 1 +end + +if not command -sq 'sed' + echo "Can't find sed." + return 1 +end + +if not command -sq 'awk' + echo "Can't find awk." + return 1 +end + +if not command -sq 'setfattr'; and command -sq 'getfattr' + echo "Can't find xattr tools." + return 1 +end + +for file in (getfattr -R -h -d . 2>/dev/null | grep '^# file:' | sed 's/^# file: //') + for attr in (getfattr -m '^user\.' "$file" 2>/dev/null | awk '/^[^#]/ {print $1}') + setfattr -x $attr $file 2>/dev/null + end +end + +end |
