From f671c8b0b63bc31997012f5452ec745d44549606 Mon Sep 17 00:00:00 2001 From: Deposite Pirate Date: Sun, 12 Oct 2025 13:37:46 +0200 Subject: Scripts to tame macOS noise rsmac.fish -> recursively delete all .DS_Store files rsdos.fish -> recursively delete all user.DOSATTRIB xattrs rsxattr.fish -> recursively delete all user xattrs new file: functions/rsdos.fish new file: functions/rsmac.fish new file: functions/rsxattr.fish --- functions/rsdos.fish | 17 +++++++++++++++++ functions/rsmac.fish | 10 ++++++++++ functions/rsxattr.fish | 29 +++++++++++++++++++++++++++++ 3 files changed, 56 insertions(+) create mode 100644 functions/rsdos.fish create mode 100644 functions/rsmac.fish create mode 100644 functions/rsxattr.fish (limited to 'functions') 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 -- cgit v1.3.1