1

Я пытаюсь использовать терминал Linux для копирования многих файлов в новое место. Я устал от команды

sudo locate -i file_I_want | xargs cp $ 1 /place_I_want_everything_copied_to /

Который, дает ошибку. Какой правильный способ справиться с этим?

1 ответ1

1

xargs не работает таким образом. Это не использует 1 доллар. Обычно он просто добавляет аргумент в конец списка параметров. Но в этом случае это не сработает, поскольку это цель, а не пункт назначения, а конечный параметр - это не то, что нужно.

Проверьте флаг -i для xargs, он позволяет вам выполнить замену. По умолчанию используется {}, я думаю, что это согласуется с find

sudo locate -i *file_I_want* | xargs -i cp {} /place_I_want_everything_copied_to/

Комментарий @javano также является ответом, хотя он сломался бы, если бы в именах файлов были пробелы (хотя я считаю, что пробелы также могут нарушить использование xargs выше)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .