3

Я редактирую кучу TXT-файлов со строкой

vim *.txt

но то, что я действительно хотел бы сделать, - это отредактировать все файлы, которые не были изменены за последний день (или n дней, или n часов) - какой самый лучший способ сделать это из командной строки?

1 ответ1

10
vim $(find * -type f -mtime 0)

$() это подстановка команд. Позволяет совершить какое-то волшебство (в этом случае, предоставляя список файлов для редактирования). Вы можете прочитать больше о них здесь

Внутри подстановки команд мы собираемся выполнить команду find которая ищет что-либо в текущем каталоге (*), который является file (-type f) и был изменен сегодня (mtime 0).

mtime ищет файлы, которые были изменены в n*24 . Так что, если бы mtime был равен 1 , если бы искал файлы, модифицированные вчера. Вы также можете использовать mmin для поиска файлов, которые были изменены n минут назад.

vim $(find * -type f -mmin $[n * 1])

В этом случае замените n минутой. Вы можете даже пойти и поменять все, что вы хотите в этом arithmetic expansion чтобы удовлетворить ваши потребности.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .