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