У меня есть набор каталогов, в которых есть файлы для использования с LiquidSoap для использования с IceCast2

В настоящее время каждый раз, когда я удаляю файл или добавляю файл, мне нужно отредактировать текстовый файл, содержащий список mp3-файлов для воспроизведения вручную.

Я хотел бы создать скрипт или задание cron, чтобы автоматически создавать простой список путей заполнения mp3-файлов в папках, который каждый раз полностью восстанавливается.

Я говорю, что это должно быть восстановлено ради удаленных файлов, удаляемых из файла


Файлы в каталогах сосут как

/home/user1/files/foo 1/
/home/user1/files/foo 2/
etc...

и содержимое

this file is called this.mp3
another name for a file.mp3
etc...

Я хотел бы иметь скрипт или cron, который создает текстовый файл с содержимым каждой папки, которая заканчивается как

/home/user1/files/foo 1/this file is called this.mp3
/home/user1/files/foo 1/another name for a file.mp3
/home/user1/files/foo 1/this is a cool filename.mp3
/home/user1/files/foo 2/moar files.mp3
/home/user1/files/foo 2/okay this is getting old.mp3

Но если бы я удалил /home/user1/files/foo 1/this file is called this.mp3 то он оставил бы текстовый файл в следующем поколении, и если бы я добавил yet another file.mp3 в одну из папок, он бы быть добавленным в текстовый файл

В настоящее время работает Ubuntu Server 13.04, и я могу устанавливать пакеты, если необходимо, хотя хотел бы использовать простые скрипты /crons

3 ответа3

1

Смотрите find:

find "/home/user1/files/foo 1/" "/home/user1/files/foo 2/" > output.txt
1

Совет: Вы также можете выполнить LC_ALL=C ls -lR | gzip > listing.ls-lR.gz . Midnight Commander позволяет вам просматривать такие файлы (неофициально известные как «ls-lR»), как если бы они были настоящей файловой системой.

0

(Предполагая, что вы работаете в Linux) Инструмент, который вы ищете - inotify (см. "Man inotify"). Можно настроить для запуска

find "/home/user1/files/foo 1/" "/home/user1/files/foo 2/" > output.txt

всякий раз, когда файл добавляется (или удаляется) из целевых каталогов.

Для Ubuntu вам нужно установить пакет inotify-tools. Это устанавливает два двоичных файла: inotifywatch и inotifywait. Хороший пример сценариев, который вам нужен, находится по адресу: http://exyr.org/2011/inotify-run/

Я использую нечто подобное для моего собственного домашнего музыкального автомата на основе Liquidsoap.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .