Как мне увидеть весь файл, а также дождаться добавления дополнительных данных в этот файл?

Первоначальный автор сделал небрежное описание, а затем вы опустили часть того, что он написал.

Он написал:

rsync ... user@<source>:<source_dir> <dest_dir>

rsync ... [source_dir] [dest_host:/dest_dir]

но лучше было бы написать:

rsync ... user@<source_host>:<source_dir> <dest_dir>

rsync ... <source_dir> user@<dest_host>:<dest_dir>

И тогда «переворот» был бы гораздо более очевидным.

По сути, первая форма «выталкивает» файлы с удаленного «исходного» хоста на локальный «dest» хост, а вторая форма «проталкивает» файлы из локального источника на удаленный dest. Он не упоминает, что быстрее.

Я также считаю, что он ошибается, опуская параметр -z. Я использую его постоянно и получаю фантастическое ускорение.

И пока мы педантичны, вы также можете сделать следующее:

rsync ... <source_dir> <dest_dir>

rsync ... user@<source_host>:<source_dir> user@<dest_host>:<dest_dir>

Первая - это просто локальная копия; вы можете использовать его в случаях, когда cp , ditto и т. д. не имеют нужных вам параметров. Вторая форма позволит вам копировать файлы между двумя удаленными серверами.

Наконец, если мы действительно педантичны, аргументы -AX относятся только к Linux AFAICT.

22
28.04.2016, 11:12
4 ответа

tail позволяет вам добавить -n , чтобы указать количество строк, отображаемых с конца, которое можно использовать в в сочетании с -f . Если аргумент для -n начинается с + , то это количество строк с начала ( 0 и 1 , отображающее весь файл , 2 , указывающий на пропуск первой строки, как указано @Ben).Так что просто сделайте:

tail -f -n +0 filename

Если ваши файлы журналов меняются, вы можете добавить - retry (или объединить -f и --retry в -F как предложил @Hagen)

Также обратите внимание, что в графическом терминале вы можете использовать мышь и PageUp / PageDown для прокрутки назад в историю (при условии, что ваш буфер достаточно велик ), эта информация остается там, даже если вы используете Ctrl + C для выхода из tail . Если вы используете less , это намного менее удобно, и AFAIK вам придется использовать клавиатуру для прокрутки, и я не знаю средств, чтобы less не деинициализировали termcap, если вы забыли запустите его с -X .

33
27.01.2020, 19:42

В дополнение к ответу / u / Anthon вы можете сделать что-то вроде:

{ cat filename; tail -0f filename; }

Параметр -0 для хвоста эквивалентен -n 0 , что означает: dispaly 0 линий. Но -f отобразит новые строки.

Вам не нужны фигурные скобки {} . Я использовал их, потому что иногда вы хотите каким-то образом перенаправить файловые дескрипторы. Например:

{ cat ; tail -0f -; } < /var/log/messages

Замечено Беном Милвудом: у вас может быть состояние гонки, при котором размер файла увеличивается между концом операции cat и началом операции tail . Но опять же, это «академическая» проблема по отношению к академическому решению.

3
27.01.2020, 19:42

Есть способ лучше добиться этого:

less +F <file>

Он покажет вам весь файл, имеет полную мощность меньше и будет ждать нового ввода. Если вы хотите прекратить ожидание ввода и прочитать определенную часть, вы можете остановить это с помощью ^ C и возобновить с помощью F .

Команда F всегда доступна в less , если вы решили следить за изменениями, открывая файл в less , нажав F включит его. Спасибо hiergiltdiestfu и wildcard за указание на это.

38
27.01.2020, 19:42
Команда

watch должна сделать это за вас.

Вы также можете попробовать

less +FG 

У вас будет больше возможностей с командой less для прокрутки вашего файла, поскольку вы говорите, что это большой файл.

3
27.01.2020, 19:42

Теги

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