Редактор vim в Linux: Как уменьшить отступ нумерации

Проблема в том, что ваша оболочка настраивает конвейер команд перед запуском команд. Дело не в «вводе и выводе», а в том, что содержимое файла исчезло еще до того, как tail даже запустится. Это выглядит примерно так:

  1. Оболочка открывает выходной файл > для записи, усекая его
  2. Оболочка настраивает использование файлового дескриптора 1 (для стандартного вывода) для этого вывода
  3. Оболочка выполняет хвост .
  4. 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)" в тот же файл.
3
30.12.2015, 19:00
0 ответов

Теги

Похожие вопросы