E eis que num belo dia, você quer fazer uma lista de arquivos de um diretório, por exemplo o diretório de Músicas.
Você quer que seja mostrado e listado em arquivo ou mesmo em tela o caminho completo do mesmo.
Buscas e mais buscas, pesquisas, lendo os manuais do ls e mesmo assim, nenhum resultado adequado ao que eu queria.
Então em um determinado momento, eu encontro a linha de comando que resolveu minha demanda.
Vamos ao problema em si:
Listar os mp3 de um diretório para montar um playlist com a discografia da banda, mas que tivesse o referencial do caminho absoluto dos arquivos.
Dentro do diretório de Músicas (/home/usuario/Músicas/banda/), usei o seguinte comando:
find "`pwd`" -name *mp3
O resultado foi algo assim:
/home/usuario/Música/Fear Factory/Mechanize/02 Industrial Discipline.mp3
/home/usuario/Música/Fear Factory/Mechanize/07 Controlled Demolition.mp3
/home/usuario/Música/Fear Factory/Mechanize/05 Christploitation.mp3
/home/usuario/Música/Fear Factory/Mechanize/10 Final Exit.mp3
/home/usuario/Música/Fear Factory/Mechanize/01 Mechanize.mp3
/home/usuario/Música/Fear Factory/Mechanize/08 Designing The Enemy.mp3
/home/usuario/Música/Fear Factory/Mechanize/04 Powershifter.mp3
/home/usuario/Música/Fear Factory/Mechanize/09 Metallic Division.mp3
/home/usuario/Música/Fear Factory/Mechanize/06 Oxidizer.mp3
/home/usuario/Música/Fear Factory/Mechanize/03 Fear Campaign.mp3
Saiu todos os discos na lista, mas deixei somente um neste post como exemplo e para que não fique tão extenso.
A saída padrão do comando é a tela. Eu redirecionei para um arquivo usando o mesmo comando apontando para o arquivo destino:
find "`pwd`" -name *mp3 > listageral.pls
Gerou o arquivo com as músicas e tudo direitinho. Mas ficou fora de ordem como é mostrado no exempĺo acima.
A preguiça é grande demais para ficar organizando na mão. Então depois que o arquivo estava pronto, lá foi outro comando legal pra organizar em ordem alfabética o arquivo:
sort listageral.pls > listageral1.pls
Assim o arquivo destino fica em ordem alfabética, como abaixo:
/home/usuario/Música/Fear Factory/Mechanize/01 Mechanize.mp3
/home/usuario/Música/Fear Factory/Mechanize/02 Industrial Discipline.mp3
/home/usuario/Música/Fear Factory/Mechanize/03 Fear Campaign.mp3
/home/usuario/Música/Fear Factory/Mechanize/04 Powershifter.mp3
/home/usuario/Música/Fear Factory/Mechanize/05 Christploitation.mp3
/home/usuario/Música/Fear Factory/Mechanize/06 Oxidizer.mp3
/home/usuario/Música/Fear Factory/Mechanize/07 Controlled Demolition.mp3
/home/usuario/Música/Fear Factory/Mechanize/08 Designing The Enemy.mp3
/home/usuario/Música/Fear Factory/Mechanize/09 Metallic Division.mp3
/home/usuario/Música/Fear Factory/Mechanize/10 Final Exit.mp3
Com o tempo tentarei montar um shell script com os parâmetros apropriados para poder gerar listas de arquivos e diretórios de forma mais simples.
Para complementar, estes outros comandos podem ajudar também, mas ainda não os usei muito bem:
Use este para diretórios:
ls -d -1 $PWD/**
Este para arquivos:
ls -d -1 $PWD/*.*
Este para qualquer coisa:
ls -d -1 $PWD/**/*
Obs: estes últimos colocados como estão trabalham com arquivos/diretórios onde os nomes não são compostos por espaço. Por isso no comando que utilizei o pwd está com aspas simples e também aspas duplas, para pode entender o caracter espaço.
No momento, atendeu minha necessidade. Espero que isso possa ajudar alguém com uma necessidade semelhante.
Fontes de referência:
http://www.zsh.org/mla/users/2002/msg00033.html
http://stackoverflow.com/questions/246215/how-can-i-list-files-with-their-absolute-path-in-linux
Nenhum comentário:
Postar um comentário