У меня есть файл, который содержит имена файлов. Например:
/tmp/list.txt
(это с пробелами в начале каждой строки):
/tmp/file.log
/app/nir/home.txt
/etc/config.cust
Я хочу, используя одну линию, чтобы переместить все файлы , перечисленные в /tmp/list.txt
к/app/dest
Так и должно быть примерно так:
cat /tmp/list.txt | xargs mv /app/dest/
Предполагая, что ваши имена файлов относительно нормальны (без новых строк или странных символов):
Чтобы справиться со странными именами файлов (ломается, если в имени файла есть новая строка):
источник
cp -Hr
но я не знаю,cp
поддерживает ли OSX это.источник
Чистое чтение xargs прямо из файла
изменить 1 - после комментария @Anthon ниже,
источник
-i
не рекомендуется, и это, или это замена-я подразумеваю-l
/--max-lines=1
. И это заставляетmv
выполняться для каждого файла отдельно.(пробелы в начале игнорируются)
источник