У меня есть строка с именами файлов, которые я хочу скопировать. Однако существуют только некоторые из этих файлов. Мой текущий сценарий выглядит следующим образом:xargs copy, если файл существует
echo $x | xargs -n 1 test -f {} && cp --target-directory=../folder/ --parents
Однако, я всегда получаю ошибку test: {}: binary operator expected
.
Как я могу это сделать?
большое решение, спасибо. Мне интересно, почему вы не используете аргумент «-n 1». Из того, что я думал, без него xargs собирается вводить несколько аргументов за раз, предоставляя 'test -f' бесполезным. – Zulakis
С '-i' обязательно подразумевается' -n 1'. Особенно с несколькими '{}' заполнителями, 'xargs' не может проходить более чем по одному файлу за раз (или синтаксис для указания одного из многих возможных вариантов поведения должен быть сбивающим с толку). – tripleee
Ах ладно, спасибо. Я не мог найти это в 'man xargs':/ – Zulakis