Спасибо за советы!!
>>find /usr/local -size -20 > /tmp/flist.txt
>>tar -cvzf /tmp/backup.tgz --files-from /tmp/flist.txt
Это не помогло, потому что если в списке flist.txt оставить имена директорий, то tar их забирает целиком, а это не то, что нужно.
А если директории убрать из flist.txt, то tar их создаёт, когда нужно, но устанавливает им текущее время в качестве времени модификации, а мне хочется сохранить времена такими же, как у исходных директорий.
>>man touch
Это помогло. Получилось вот что:
s=/home/alex
d=/tmp/backup_10k
cd $s
mkdir $d
find ./ -type d -exec mkdir $d/{} ";" -print # создаём дерево каталогов
find ./ -type f -size -10k -exec cp -p {} $d/{} ";" -print # копируем файлы
find $d -depth -type d -empty -exec rmdir {} ";" -print # удаляем пустые каталоги (начиная с самого глубокого уровня)
cd $d
find ./ -type d -exec touch -r $s/{} {} ";" -print # меняем время создания/модификации каталогов
tar cvzf $d.tgz . # архивируем