Qualche giorno fa ero collegato ad un server povero di risorse (povero è un eufemismo) ed avevo necessità di spostare circa 10
6 file da una directory. Quando si tratta di un numero elevato di file un semplice "
mv *" non si può fare poiché "
*" non è espanso (tipicamente
Argument list too long). Non era possibile spostare l'intera directory per un vincolo che non descrivo poiché mi porterebbe fuori tema.
Ho salvato la sessione di comandi, potrebbe essere istruttiva
# ls -l | wc -l
ls: memory exhausted
# find ./ -type f -exec mv {} ../../../da_cancellare/.n_returned/ \;
find: cannot fork: Cannot allocate memory
# for i in `ls`;do mv $i ../../../da_cancellare/.n_returned/${i}; done
-bash: fork: Cannot allocate memory
# /bin/ls | tr '\n' '\0' | xargs -0 -i% mv % ../../../da_cancellare/.n_returned/