Рассмотрите возможность использования updatedb
, а затем найдите
. Он работает очень быстро, так как locate
запрашивает базу данных, и это намного быстрее, чем запрашивать каждый файл по отдельности. updatedb
также работает быстро, поскольку он только обновляет базу данных с изменениями, а не создает ее заново. Единственным недостатком является то, что вам могут потребоваться привилегии root для запуска updatedb
по умолчанию, если только вы не создадите и не сохраните свою собственную базу данных в пользовательском пространстве.
Имейте в виду, что в ваших именах файлов могут быть символы новой строки, так что вам нужно быть более осторожным при обработке вывода locate
. Лучше всего использовать нулевой байт в качестве разделителя имени файла.
Подводя итог:
updatedb && locate -0 "$(pwd)" | awk -v RS='\0' -F"/" '{print NF-1}' | сортировать -n | tail -n1
Спасибо @sai sasanka за отличный awk-скрипт.
В таких обстоятельствах скрипт
очень удобен: он запускает оболочку, записывая весь вывод. В вашем примере перед входом в chroot вы должны запустить
script temp_file.txt
, а затем
sudo enter-chroot
и т. Д. При выходе из chroot вы снова должны выйти, чтобы выйти из скрипта
, и вы найдете нужный текст (вместе со всем остальным, что вы сделали) в temp_file.txt
.
Другая возможность - запустить сеанс в screen
; который позволяет сохранять текущее "окно" (на языке screen
) в файл ( Ctrl + a , за которым следует h по умолчанию ; это выгружает содержимое экрана в файл с именем hardcopy.n
, где n
- счетчик) и копирует и вставляет между окнами ( Ctrl + a , за которым следует Esc по умолчанию перейдет в режим прокрутки / копирования; подробности см. в документации).
Возьмите за привычку работать в Screen (или tmux , который имеет примерно такой же набор функций). Экран предоставляет терминал в терминал с несколькими преимуществами; наиболее часто полезным является то, что вы можете отсоединить и повторно подключить к терминалу Screen, но вам нужно, чтобы Screen поддерживал настраиваемое количество истории прокрутки, и вы можете копировать текст из него.
Чтобы выбрать часть отображаемого текста или истории прокрутки и скопировать ее, нажмите Ctrl + A Esc . Теперь вы находитесь в режиме копирования / прокрутки . Нажмите клавиши со стрелками для перемещения, Пробел , чтобы начать выбор, переместите еще немного и снова нажмите и Пробел , чтобы скопировать. Чтобы вставить текст в окно экрана, нажмите Ctrl + A ] . Чтобы вставить в файл, нажмите Ctrl + A > .