Как перенести все файлы, выводимые из команды?

У меня есть команда grep для поиска файлов без вложения в них.

grep -L -- Attachments * 

Я хочу переместить все файлы, которые выводятся из этой команды. Как это сделать в bash? Я использую трубку? Я использую более многословный оператор if / then в полноэкранном сценарии?

2 Solutions collect form web for “Как перенести все файлы, выводимые из команды?”

Если вы знаете, что нет, если имена файлов содержат новые строки, вкладки, пробелы или комбинации глобусов, которые могут привести к совпадению, это может быть проще для одного случая:

 mv $(grep -L Attachments *) dest_dir 

То, что вы хотите сделать, это использовать параметр pipe и grep s -Z :

Использование GNU grep и mv

 grep -LZ -- Attachments * | xargs -0 mv -t target_directory 

-Z сочетании с xargs -0 обрабатывает любые имена файлов со специальными символами.

Использование BSD grep и mv (например, на MacOS X)

 grep -L --null -- Attachments * | while IFS= read -r -d "" file; do mv "./$file" target_directory done 

В BSD grep -Z означает декомпрессию , grep --null работает как с BSD, так и с GNU. В BSD mv отсутствует опция -t

Interesting Posts

Установите мета-ключ диспетчера окон в зависимости от подключенного Xserver

Почему пользователь sudo может использовать sched_setscheduler SCHED_RR, а root не может?

Как подсчитать дублированные последние столбцы, не удаляя их?

Как передавать данные за пределами процесса для достижения зенита?

как запустить более одной программы в одном скрипте?

Как заставить часы работать под bash

Как сделать zsh «правильной» функциональностью, помните мои решения по исправлению заклинаний

Kali VM зависает, когда TL-WN722N выбран как USB-устройство для виртуальной виртуальной машины VM

sudo rm -rf возвращает «не удается удалить каталог» в пустом каталоге, принадлежащем root

Клавиша Alt не распознана – Dell Inspiron n4110 / Mint 16 (Петра)

Разрешить ftp через iptables

Как я могу очистить повторяющиеся записи из моего PATH?

Ошибка «Malformed patch» при использовании diff для источника wget с патчем

Msgstr "mv: невозможно перемещаться". на `../general/. ': занято устройство или ресурс"

Почему моя переменная среды не видна из командной строки?

Linux и Unix - лучшая ОС в мире.