2 votos

Crear enlaces simbólicos de varios libros recogidos de comando `find`

Me gustaría crear enlaces simbólicos de varios libros buscado desde que se ejecutan find comando.

En primer lugar, recoger todos los libros 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 al directorio js_books

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

Funciona, sin embargo, varias copias consumir una gran cantidad de espacio en disco.
Así que voy a borrar de los libros y tratar de hacer el enlace simbólico dentro.

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

Devuelve nada en dir js_books.

La manera de trabajar de un problema?

2voto

Michael Zhou Puntos 167

Usted puede perder el -print0 de primaria y el fuerte de comillas {}. Le sugiero que use un pegote patrón en lugar de una expresión regular. Algo así como:

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

1voto

Nimesh Neema Puntos 69

Intenta ejecutar el comando después de la eliminación de la última aparición de '{}' desde la línea de comandos que escribió:

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

Esto debería hacer que funcione.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X