Проблема в том, что ваша оболочка настраивает конвейер команд перед запуском команд. Дело не в «вводе и выводе», а в том, что содержимое файла исчезло еще до того, как tail даже запустится. Это выглядит примерно так:
>
для записи, усекая его хвост
. tail
запускается, открывает / home / pi / Documents / test
и ничего там не находит Существуют различные решения, но главное - понять проблему, что на самом деле происходит не так и Почему.
В результате будет получено то, что вы ищете,
echo "$(tail -n 50 /home/pi/Documents/test)" > /home/pi/Documents/test
Объяснение:
$ ()
называется подстановкой команд, которая выполняет tail -n 50 / home / pi / Documents / test
> / home / pi / Documents / test
перенаправляет вывод echo "$ (tail -n 50 / home / pi / Documents / test)"
в тот же файл.