Tengo un archivo que contiene nombres de archivo. Por ejemplo:
/tmp/list.txt
(es con los espacios al comienzo de cada línea):
/tmp/file.log
/app/nir/home.txt
/etc/config.cust
Quiero, usando una línea, mover todos los archivos listados /tmp/list.txt
a/app/dest
Entonces debería ser algo como esto:
cat /tmp/list.txt | xargs mv /app/dest/
Asumiendo que sus nombres de archivo son relativamente sanos (no hay líneas nuevas o caracteres extraños):
Para tratar con nombres de archivo extraños (se rompe si un nombre de archivo tiene una nueva línea):
fuente
cp -Hr
pero no sé si OSX locp
admite.fuente
Lectura pura de xargs directamente del archivo
editar 1 - después del comentario de @Anthon a continuación,
fuente
-i
se deprecrated, y, o reemplazo -I implica-l
/--max-lines=1
. Y hacemv
que se ejecute para cada archivo por separado.(los espacios al inicio se ignoran)
fuente