diff options
Diffstat (limited to 'functions')
| -rw-r--r-- | functions/rsdos.fish | 17 | ||||
| -rw-r--r-- | functions/rsmac.fish | 10 | ||||
| -rw-r--r-- | functions/rsxattr.fish | 29 |
3 files changed, 56 insertions, 0 deletions
diff --git a/functions/rsdos.fish b/functions/rsdos.fish new file mode 100644 index 0000000..6efec55 --- /dev/null +++ b/functions/rsdos.fish @@ -0,0 +1,17 @@ +function rsdos --description 'Recursively delete all user.DOSATTRIB xattrs' + +if not command -sq 'find' + echo "Can't find find." + return 1 +end + +if not command -sq 'setfattr' + echo "Can't find setfattr." + return 1 +end + +find . -exec setfattr -x user.DOSATTRIB {} + 2>/dev/null + +return 0 + +end diff --git a/functions/rsmac.fish b/functions/rsmac.fish new file mode 100644 index 0000000..f0d3e49 --- /dev/null +++ b/functions/rsmac.fish @@ -0,0 +1,10 @@ +function rsmac --description 'Recursively delete all .DS_Store files' + +if not command -sq 'find' + echo "Can't find find." + return 1 +end + +find . -type f -name '.DS_Store' -delete + +end 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 |
