Вывести список новейших файлов по типу (.txt) после рекурсивного поиска в терминале - PullRequest
3 голосов
/ 10 июня 2011

Я пытаюсь, чтобы мой терминал возвратил самый последний файл .txt, с целым путем.Я исследовал ls, grep, find и tail, используя '|'функциональность передачи результатов от одной утилиты к другой.Конечный результат будет иметь рабочий путь + результат, который я мог бы пропустить в своем текстовом редакторе.

Я близко подошел к таким тестам: find.|grep '.txt $' |tail -1

.. но мне не повезло, когда grep вернул самый новый файл - есть ли флаг, который я пропустил?

Попытка использовать find & ls не совсем такработает либо:

найти.имя "* .txt" |ls -lrth

.. ls возвращает текущие каталоги вместо результатов моего запроса поиска.

Пожалуйста, помогите!

Ответы [ 4 ]

3 голосов
/ 10 июня 2011

Ты так близко.

vi "$(find . -name '*.txt' -exec ls -t {} + | head -1)"
2 голосов
/ 10 июня 2011

Если у вас есть bash4 +

ls -t ./**/*.txt | head -1

редактировать последний текстовый файл

vim $(ls -t ./**/*.txt |head -1)

ps: необходимо включить shopt -s globstar в вашем .bashrc или .profile ...

2 голосов
/ 10 июня 2011
find /usr/share -name '*.txt' -printf '%C+ %p\n' | sort -r | head -1 | sed 's/^[^ ]* //'
1 голос
/ 10 июня 2011

Вы можете использовать функцию stat для печати каждого файла только с последним временем изменения и именем.

найти. -name "* .txt" -exec stat -c "% m% N" {} \; | сортировать

...