Cree enlaces simbólicos para varios libros recopilados desde el comando 'buscar'

1

Me gustaría crear enlaces simbólicos para varios libros buscados desde la ejecución del comando find .

En primer lugar, colecciono todos los libros de JS

find ~ -type f -iregex  '.*javascript.*\.pdf' > js_books.md 2>/dev/null

Devuelve 35 libros

../Coding/Books/HTML_Collections/Freeman E.T., Robson E. - Head First HTML5. Programming Building Web Apps with JavaScript - 2011.pdf
../Coding/Books/HTML_Collections/Learning Web Design - A Beginner's Guide to HTML, CSS, JavaScript, and Web Graphics - Jennifer Niederst Robbins - 4th Edition - August 2012.pdf
..

Además, para copiarlos en el directorio js_books

mkdir js_books
find ~ -type f -iregex  '.*javascript.*\.pdf' -print0 -exec cp '{}' js_books

Funciona, sin embargo, varias copias consumen una gran cantidad de espacio en disco.
Así que borro los libros y trato de hacer un enlace simbólico dentro.

find ~ -type f -iregex  '.*javascript.*\.pdf' -print0 -exec ln -s '{}' js_books/'{}' \;

No devuelve nada en dir js_books.

¿Cómo resolver ese problema?

    
pregunta JawSaw 29.03.2018 - 15:07

2 respuestas

1

Puedes perder -print0 primary y las comillas fuertes alrededor de {} . Le sugiero que utilice un patrón global en lugar de una expresión regular. Algo como:

 find ~ -type f -iname '*javascript*.pdf' -exec ln -s {} js_books \;
    
respondido por el fd0 29.03.2018 - 15:50
0

Intente ejecutar el comando después de eliminar la última aparición de '{}' de la línea de comandos que ingresó:

find ~ -type f -iregex '.*javascript.*\.pdf' -print0 -exec ln -s '{}' js_books/ \;

Esto debería hacer que funcione.

    
respondido por el Nimesh Neema 29.03.2018 - 15:31

Lea otras preguntas en las etiquetas