Tengo varios miles de libros electrónicos que deben organizarse en un servidor linux sin cabeza ejecutando bash a través de SSH. Todos los libros electrónicos son afortunadamente nombrados con una de las 2 convenciones.¿Mover archivos a directorios basados en la primera parte del nombre de archivo?
- AuthorFirstName AuthorLastName - libro Title.pdf
- AuthorFirstName AuthorLastName - Libro #inSeries Series - libro Title.pdf
Lo que me gustaría hacer es mover todos los libros en una sistema organizado como:
`DestinationDirectory/FirstLetterOfAuthorFirstName/Author Full Name/pdf's`
por ejemplo los siguientes libros
Andrew Weiner - Changes.pdf
Allan Cole - Timura Trilogy 01 - When the Gods Slept.pdf
deben ser colocados en las siguientes carpetas
/books/A/Allan Cole/Allan Cole - Timura Trilogy 01 - When the Gods Slept.pdf
/books/A/Andrew Weiner/Andrew Weiner - Changes.pdf
Necesito ayuda con la forma de poner todo esto en un script bash que se agarra los nombres de archivo de todos los archivos PDF en el actual directorio, y luego mueva los archivos al directorio apropiado, creando el directorio si aún no existe.
Gracias! Eso funcionó maravillosamente! sed y cut son programas con los que no he trabajado anteriormente, puedo ver que son cosas que debo aprender –
El comando anidado 'ls' no es necesario. Esto es más que adecuado: 'for f in * .pdf; do ... 'Me sigo preguntando por qué la gente usa' ls' de esta manera. – greyfade
@greyfade la razón por la que el ls está allí es porque de lo contrario el script fallará o fallará si no hay archivos PDF en el directorio de trabajo actual cuando se ejecuta –