Automaticamente Cria um arquivo de texto do conteúdo da pasta

0

Eu tenho um conjunto de diretórios que possuem arquivos neles para uso com o LiquidSoap para uso com o IceCast2

Atualmente, toda vez que eu removo um arquivo ou adiciono um arquivo, eu tenho que editar o arquivo txt listando os mp3s para reproduzir manualmente

O que eu gostaria de fazer é criar um script, ou uma tarefa cron, para criar automaticamente uma lista simples do caminho de preenchimento para os mp3s nas pastas que são completamente regeneradas a cada vez.

Eu digo que ele precisa ser regenerado para que arquivos excluídos sejam removidos do arquivo

Os arquivos estão em diretórios como

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

e o conteúdo é

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

Eu gostaria de ter um script ou cron que cria um arquivo txt com o conteúdo de cada pasta que termina como

/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

Mas se eu removesse /home/user1/files/foo 1/this file is called this.mp3 , ele deixaria o arquivo txt na próxima geração e, se eu adicionasse yet another file.mp3 a uma das pastas, ele seria adicionado ao arquivo txt

Atualmente executando o Ubuntu Server 13.04, e posso instalar pacotes, se necessário, mas gostaria de usar scripts / crons simples

    
por Pixel Perfect 30.07.2013 / 03:15

3 respostas

1

Veja find :

find "/home/user1/files/foo 1/" "/home/user1/files/foo 2/" > output.txt
    
por 30.07.2013 / 03:26
1

Dica: você também pode fazer LC_ALL=C ls -lR | gzip > listing.ls-lR.gz . O Midnight Commander permite que você visualize tais arquivos (não oficialmente conhecidos como "ls-lR") como se fossem um verdadeiro sistema de arquivos.

    
por 06.08.2013 / 17:37
0

(Supondo que você esteja executando o Linux) A ferramenta que você está procurando é inotify (veja "man inotify"). É possível configurá-lo para executar

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

sempre que um arquivo é adicionado (ou excluído) dos diretórios de destino.

Para o Ubuntu, você precisará instalar o pacote inotify-tools. Isso instala dois binários: inotifywatch e inotifywait. Um bom exemplo de criação de scripts do que você precisa é: link

Eu uso algo similar para a minha própria jukebox baseada em Liquidsoap.

    
por 14.10.2013 / 18:29