1 votos

La transferencia de varios archivos de una carpeta a otra a través de la Terminal

Soy un nuevo usuario de macOS, así que por favor acepte mis disculpas de antemano si mi pregunta suena muy trivial o estúpido.

Tengo una carpeta que contiene 13000 imágenes. Quiero transferir las imágenes en tres diferentes carpetas, de tal manera que cinco mil imágenes que van en dos carpetas diferentes cada uno y los restantes 3 mil entrar en la tercera carpeta.

Después de buscar por un tiempo, he utilizado el siguiente comando para transferir primer 5000 imágenes pero no funcionó. Aquí están mis pasos:

  1. Fui a la fuente de la carpeta que contiene las imágenes

  2. Usa este comando para copiar las imágenes cp head -5000 ../Paras_valid, pero no funcionó.

Podría alguien ayudarme a cómo copiar varios archivos en diferentes carpetas?

3voto

Esto es más difícil de lo que parece. La siguiente se supone que todas las imágenes que desea copiar están en el mismo directorio (no sub directorios).

cd "PATH/TO/Paras_all"
count=0
find . -maxdepth 1 -iname '*.png' -print | while IFS= read line; do
    if [[ $count -lt 5000 ]]; then
        echo cp "$line" ~/"Documents/TARGET1"
    elif [[ $count -lt 10000 ]]; then
        echo cp "$line" ~/"Documents/TARGET2"
    else
        echo cp "$line" ~/"Documents/TARGET3"
    fi
    ((count++))
done

Reemplace -name '*.JPG' a mach sus imágenes y TARGET1 etc por los nombres reales. Si ejecuta el código como el que se acaba de imprimir los comandos. Quitar el echo si los comandos parecen ser correctos.

PS: Es probablemente más fácil para poner todo en un archivo con #!/bin/bash en la primera línea, hacer el archivo ejecutable con chmod +x NAMEOFFILE y, a continuación, ejecute ./NAMEOFFILE.

2voto

john Puntos 11

usted puede ir primero a buscar y abrir la carpeta con todas las imágenes. Quiero seleccionar todos los archivos y haga clic derecho. Una de las opciones que usted verá cuando usted haga clic para cambiar el nombre de 13000 archivos. Si hace clic en esta opción, usted obtendrá un panel donde puede cambiar el nombre de los archivos en orden secuencial. Usted puede definir la primera parte del nombre y se agregará la parte secuencial.

Ahora hay que crear una carpeta para los primeros 5000 archivos. Usted puede seleccionar el primer 5000 archivos y crear un script de shell que se ejecuta desde 1 a 5000 y ejecutarlo desde la nueva carpeta vacía. El comando que establece ejecutar 5000 veces es, desde el nuevo directorio, "cp ../old_folder_name/files_name_inum *".Esto copiará los archivos *_00001 a *_05000 primero nuevo directorio. A continuación, hacer un 2º directorio y se han de ejecución de secuencias de comandos de *_05001 a *_10000 y finalmente ejecutar una tercera vez para obtener los archivos de 10001 a 13000.

El real unix shell script es el siguiente

for i in {0001..5000}
do
   cp ../old_imager_files/image_files_$i target1/
done

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