Я пытаюсь использовать терминал Linux для копирования многих файлов в новое место. Я устал от команды
sudo locate -i file_I_want | xargs cp $ 1 /place_I_want_everything_copied_to /
Который, дает ошибку. Какой правильный способ справиться с этим?
xargs
не работает таким образом. Это не использует 1 доллар. Обычно он просто добавляет аргумент в конец списка параметров. Но в этом случае это не сработает, поскольку это цель, а не пункт назначения, а конечный параметр - это не то, что нужно.
Проверьте флаг -i
для xargs, он позволяет вам выполнить замену. По умолчанию используется {}, я думаю, что это согласуется с find
sudo locate -i *file_I_want* | xargs -i cp {} /place_I_want_everything_copied_to/
Комментарий @javano также является ответом, хотя он сломался бы, если бы в именах файлов были пробелы (хотя я считаю, что пробелы также могут нарушить использование xargs выше)