3 votos

Copie los archivos números primera de un directorio a otro

Estoy buscando a copiar el primer 'n' los archivos de un directorio a otro directorio de preferencia con sólo herramientas de línea de comandos (sin guiones).

He intentado lo siguiente:

  • find . -maxdepth 1 -type f | head -5 | xargs cp -t /target/directory

    Esto parecía prometedora, pero fracasó debido a osx cp comando no parecen tener la
    -t cambiar

  • exec en un par de configuraciones diferentes

    Esto probablemente error de sintaxis problemas en mi final : /
    Yo no podía obtener un head selección del tipo de trabajo

Cualquier ayuda o sugerencia se agradece.

Gracias de antemano!

4voto

Michael Zhou Puntos 167

Usted necesita la -J opción xargs.

find . -maxdepth 1 -type f | head -n5 | xargs -J X cp X /target/directory

El J opción coloca todos los nombres de archivo en el marcador de posición X, que puede ser cualquier personaje(s) y cp acepta múltiples archivos a un directorio de destino. Puede ser visualizado como-

cp file1 file2 file3 file4 file5 DESTINATION

EDITAR:

Para manejar los nombres de archivo con espacios, tenemos que encontrar imprimir el carácter nulo después de cada nombre de archivo y, a continuación, han xargs manejar el null poco.

 find . -maxdepth 1 -type f -print0 | head -n5 | xargs -0 -J X cp X /target/directory

1voto

user3439894 Puntos 5883

He encontrado una solución diferente sin o pero creo que la respuesta de fd0 es una mejor manera de ir:

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