Мне нравится общая концепция в статье Macworld, на которую ссылается @Dave, но я не хочу разыскивать намеренно размещенные скрытые файлы или папки (особенно .git или .svn), и я хочу очистить файловые системы не-msdos, а также dos ,
Обратите внимание, что это приведет к удалению / уничтожению ваших файлов по сценарию, поэтому я рекомендую вам делать это только в том случае, если вы достаточно хорошо понимаете, что делает этот сценарий, и у вас все в порядке с потенциальным беспорядком.
Я взял предложенный сценарий и изменил его, как показано ниже. Как они там сказали, перед редактированием убедитесь, что sudo mv /sbin/umount /sbin/umount-orig
(чтобы этот скрипт мог вызвать исходный umount). После редактирования sudo chmod 555 /sbin/umount
и sudo chown root:wheel /sbin/umount
.
#!/bin/sh --
loggerTag='umount-wrapper'
(
if [ "$@" ]; then
for i in "$@"; do
echo $i
done
echo "cleaning mounted filesystem before running umount-orig..."
rm -rf "$1"/._*
rm -rf "$1"/.Trash*
rm -rf "$1"/.Spotlight*
rm -rf "$1"/.DS_Store
rm -rf "$1"/.fseven*
fi
) | logger -st $loggerTag
/sbin/umount-orig "$@"
Для справки (в случае, если ссылка исчезла), оригинал сказал использовать следующее для очистки, но в зависимости от типа файловой системы:
fstype=`diskutil info "$1" | sed 's/ //g' | grep '^Type:' | cut -d':' -f2`
echo "fstype is ${fstype}"
if [ "$fstype" = "msdos" ]; then
echo cleaning msdos filesystem...
find "$1" -depth -name '.[^.]*' -print -exec /bin/rm -fr {} \;
else
echo not msdos, skipping to umount...
fi