Попробуйте это вместо этого:
find -name '*.txt' -print0 | head -z -1 | xargs -0 -I '{}' mv '{}' test.txt
Что было не так и почему это должно работать вместо:
- Там нет смысла использовать поиск, если вы передаете все, что он должен найти в любом случае
- Если вы используете нулевые разделители для чего-либо в конвейере, вам нужно использовать их для всего в конвейере
- Ваше использование xargs не заменяет
*.txt
имя найденного файла.