Можно ли rsync заставить сортировать дерево каталогов?

Автор n0mad, 17 ноября 2025, 12:39:53

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

n0mad

Вот в общем то сабж!
Началось всё с музыкальной коллекции. Там по алфавиту - Первыми случились Аудиокниги.
Я тупо переименовал каталоги в mc, вышел на уровень вверх и нажал F5
По мелькающим именам я понял что копируются Аудиокниги, хотя я их переименовал в 999Аудиокниги.
Ладно, беру rsync, копирую и начинается то же самое...
И как же записать всю коллекцию на флешку в порядке сортировки? А то фтыкаешь в китайский усилитель с MicroSD и он начинает читать книги!
--- Всех благ!

ek-nfn

#1
rsync обрабатывает каталоги в алфавитном порядке и сначала, как понимаю, первыми каталоги начинающиеся с цифр. Надо было не цифры добавлять, а последние буквы алфавита  :D Опций по смене этого порядка у rsync я не видел.
Можно поколдовать с конвейером из find и xargs с передачей в rsync.

Цитата: n0mad от 17 ноября 2025, 12:39:53А то фтыкаешь в китайский усилитель с MicroSD и он начинает читать книги!
Это еще ладно, можно извернуться. smart часы t-rex 3 воспроизводят аудио через наушники по принципу "последний вошел. первым вышел". Причем не дает сторонним ФМ записывать файлы в свою память, только через свой ФМ, который не имеет функций сортировки и работает в алфавитном порядке. Аудиокниги приходится слушать от последней главы к началу. :D
Debian 12  -> Devuan 5 xfce -> MX Linux 23

dzhoser

С rsync есть особенность - он сохраняет порядок файлов, который возвращает файловая система, а не алфавитный порядок. Вот как правильно:
# Создаем отсортированный список файлов/папок
find /путь/к/коллекции -maxdepth 1 -type d | sort > filelist.txt

# Копируем по отсортированному списку
while IFS= read -r dir; do
    if [ -n "$dir" ]; then
        rsync -av "$dir" /путь/к/флешке/
    fi
done < filelist.txt
Ubuntu->Linux mint->Astra Linux SE->Debian 13
Для новичков

n0mad

#3
Цитата: dzhoser от 17 ноября 2025, 13:21:32# Создаем отсортированный список файлов/папок
НЕЕЕ!!! Мне надо ВСЁ ДЕРЕВО отсортировать.
А так я и на один уровень вниз спущусь и в mc скопирую. Но там во вложенных - тоже несортированное!

17 ноября 2025, 21:36:25
В итоге спросил у Дипсиха (deepseek.com)
Тот дал кучу вариантов.
Начал с первого:
$find [sourcedir] -type f|sort|cpio -pdm[destdir]
И тишина... Открыл параллельное окно - в папке назначения растёт всё отсортированное.
--- Всех благ!