Я попытался использовать этот commanline.

find *.txt | head -1 | xargs -0 mv *.txt test.txt

я получил.

mv: target '02 .txt\n 'не является каталогом

Что не так :(?

1 ответ1

1

Попробуйте это вместо этого:

find -name '*.txt' -print0 | head -z -1 | xargs -0 -I '{}' mv '{}' test.txt

Что было не так и почему это должно работать вместо:

  • Там нет смысла использовать поиск, если вы передаете все, что он должен найти в любом случае
  • Если вы используете нулевые разделители для чего-либо в конвейере, вам нужно использовать их для всего в конвейере
  • Ваше использование xargs не заменяет *.txt в качестве имени найденного файла.

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