О порядке
hardsign — 27.09.2024Когда вы открываете папку в Проводнике или в FAR’е, файлы отсортированы по алфавиту. Это кажется настолько естественным, что непонятно, как может быть по-другому.
На самом-то деле, конечно, файлы отсортированы как попало, а именно — в том порядке, в котором они попали на диск, но все умеют сортировать список. Все, кроме тех, кому это действительно важно.
В моём древнем пепелаце, менять который на ультрасовременного «китайца» я не готов, стоит магнитола, которая читает с флешки файлы именно в том порядке, в котором они записаны. И если сделать в Проводнике Ctrl+C в исходной папке, а потом Ctrl+V на флешке, то скорее всего воспроизведение альбома начнётся с шестого трека, за которым последуют третий, восьмой и пятый. Поскольку обычно музыканты вкладывают в порядок песен какой-то смысл, хотелось бы избежать такого эффекта.
Поскольку у нас Linux, задача решается скриптом на bash. С рекурсией, всё как мы любим. Желающих насладиться прошу под кат.
#!/bin/bash # копирует файлы по порядку # Параметр — целевой каталог IFS=' ' function copy_files() { for f in $(find "${1}" -maxdepth 1 -type f -name "*.mp3" -printf "%f\n" | sort) do cp "${1}/${f}" "${2}/${f}" sleep 0.2 while [ ! -f "${2}/${f}" ]; do sleep 0.2; done done } function copy_dir() { copy_files "${1}" "${2}" for d in $(find "${1}" -maxdepth 1 -mindepth 1 -type d -printf "%f\n" | sort) do mkdir -p "${2}/${d}" copy_dir "$1/${d}" "${2}/${d}" done } copy_dir . "${1}"
|
</> |