ver varios todos renombrar para otro mover los ejemplos directorio copiar contenido comandos comando basicos archivos archivo linux cp

todos - mover varios archivos en linux



Comandos de Linux para copiar un archivo a muchos archivos (9)

Solo por diversión, si necesitas una gran lista de archivos:

tee <sourcefile.jpg targetfiles{01-50}.jpg >/dev/null - Kelvin 12 de febrero a las 19:52

Pero hay un pequeño error tipográfico. Debiera ser:

tee <sourcefile.jpg targetfiles{01..50}.jpg >/dev/null

Y como se mencionó anteriormente, eso no copia los permisos.

¿Existe un comando / script de una línea para copiar un archivo a muchos archivos en Linux?

cp file1 file2 file3

Copia los dos primeros archivos en el tercero. ¿Hay alguna manera de copiar el primer archivo en el resto?


Hace

cp file1 file2 ; cp file1 file3

¿contar como un "comando / script de una línea"? Qué tal si

for file in file2 file3 ; do cp file1 "$file" ; done

?

O, para un sentido ligeramente más flexible de "copiar":

tee <file1 file2 file3 >/dev/null


La solución más simple / rápida que se me ocurre es un bucle for:

for target in file2 file3 do; cp file1 "$target"; done

Un truco sucio sería el siguiente (recomiendo encarecidamente que no lo haga, y solo funciona en bash de todos modos):

eval ''cp file1 ''{file2,file3}'';''


Puede mejorar / simplificar la aproximación for (respondida por @ruakh) de la copia utilizando rangos de expansión de refuerzo de bash :

for f in file{1..10}; do cp file $f; done

Esto copia el file en file1, file2, ..., file10 .

Recurso para verificar:


Puedes usar shift :

file=$1 shift for dest in "$@" ; do cp -r $file $dest done


Puedes usar comandos de scripting estándar para eso en su lugar:

Intento:

for i in file2 file3 ; do cp file1 $i ; done


Usa algo como lo siguiente. Funciona en zsh.

cat cat> firstCopy> secondCopy> thirdCopy

o

Archivo cat> {1..100} - para nombres de archivos con números.

Es bueno para archivos pequeños.

Debe usar el script cp mencionado anteriormente para archivos más grandes.


cat file1 | tee file2 | tee file3 | tee file4 | tee file5 >/dev/null


for FILE in "file2" "file3"; do cp file1 $FILE; done