Hola a todos.
Resulta que uso el servidor MEGA como mi disco en la nube. Para subir mis copias de seguridad uso la aplicación por línea de comandos "megatools". El uso genérico de la aplicación es la siguiente:
$ megaput "[nombre archivo a subir]" -u [mi_dirección_de_e-mail] -p [mi_contraseña]
Si deseo subir dos o más archivos simultáneamente (en paralelo), uso:
$ ls * | xargs -n -P[nºde subidas paralelas deseadas] megaput -u [mi_dirección_de_e-mail] -p [mi_contraseña]
Hasta aquí todo bien. El problema es cuando el nombre del archivo contiene espacios en blanco:
ERROR: Upload failed for '02': Can't read local file 02: Error al abrir el archivo: No existe el fichero o el directorio
ERROR: Upload failed for '-': Can't read local file -: Error al abrir el archivo: No existe el fichero o el directorio
Es decir, cada parte del nombre separada por espacios me la considera como un archivo independiente, y claro, no puede subirlo.
si utilizo for... in; do...; done, entonces sí me lee el archivo:
$ for FILE in *; do megaput "$FILE" -u [mi_dirección_de_e-mail] -p [mi_contraseña]; done
Pero aquí no puedo (yo no he podido) usar xargs -n -P[nºde subidas paralelas deseadas] para realizar una subida simultánea.
He llegado a probar con find, pero sin resultados:
$ find . -iname "*" -type f -print0 | xargs -0 -n1 -P4 megaput -u [mi_dirección_de_e-mail] -p [mi_contraseña]
¿Habría alguna solución o debo renombrar los archivos?
Muchas gracias.