Есть ли команда, которая будет перечислять все файлы, которые я изменил в этом году?

Я хочу перечислить все файлы, которые я изменил в этом году, и вернуть их обратно. Кто-нибудь знает, есть ли команда, чтобы перечислить их? Заранее спасибо.

1
задан 22 November 2016 в 21:58

3 ответа

Предполагая, что вы хотите сохранить дату, ограниченную текущим годом, вы можете использовать -newermt с датой.

Это будет выглядеть в текущем каталоге для любых файлов после 1 ноября 2016 года и скопировать их to / target при сохранении структуры каталогов.

find . -newermt "2016-11-01 00:00:00" -exec cp --parents {} /target \;

Добавленный в команду cp --parents позволяет скопировать файлы, поддерживающие папки, в которых он существует.

Например. ..

ubuntu@ubuntu-xenial:~$ ls
percona-release_0.1-4.xenial_all.deb  t  t2  testdir  testfile2.vm  testfile.vm
ubuntu@ubuntu-xenial:~$ cp --parents t/output.txt testdir/
ubuntu@ubuntu-xenial:~$ ls testdir/
directory2  t

Когда я скопировал t/output.txt в testdir/, он создал папку t в testdir/, а затем скопировал файл.

5
ответ дан 23 May 2018 в 03:58
  • 1
    Чтобы уточнить, что означает «родители», делать? И спасибо вам за ваши ответы. – Peacemaker5 22 November 2016 в 23:57
  • 2
    обновлено, @ Peacemaker5 – bc2946088 23 November 2016 в 00:17
  • 3
    Что произойдет, если вы войдете в команду без «родителей»? Еще раз спасибо. – Peacemaker5 23 November 2016 в 00:56
  • 4
    Он скопирует весь список файлов в / target без создания подпапок – bc2946088 23 November 2016 в 01:20
  • 5
    Спасибо за полезные ответы! Я ценю информацию. [Хотя я новичок, я не понимаю его. :-)] – Peacemaker5 23 November 2016 в 01:35

Чтобы просмотреть все файлы, измененные в этом году, и его детали:

find / -mtime -365 -ls

Это будет отображать все из последних 365 дней.

Чтобы отображать только обычные файлы, добавьте -type f к этой команде.

Чтобы получить список всех измененных файлов (с полным путем):

find / -mtime -365

Вы можете резервировать эти файлы в любом месте, используя cp или scp и т. д.

Добавьте -printf "%f\n" в конец команды, чтобы печатать только имена файлов.

2
ответ дан 23 May 2018 в 03:58
  • 1
    " и обратно вверх " – Rinzwind 22 November 2016 в 22:27
  • 2
    Просто чтобы уточнить, что такое «обычные файлы»? (И спасибо за ваш быстрый ответ.) – Peacemaker5 22 November 2016 в 22:48
  • 3
    @ Peacemaker5 Я имел в виду файлы без каталога. – Ani Menon 22 November 2016 в 22:56
  • 4
    @Rinzwind просто копирует файлы туда, где когда-либо ... – Ani Menon 22 November 2016 в 23:00
  • 5
    Он делает вывод для каждого файла длинным (с большой информацией похожий, но не такой, как «ls -l») - проверьте его и посмотрите, как он выглядит в широком окне терминала (более 80 символов, например, полный экран). – sudodus 22 November 2016 в 23:57

Я использую некоторые псевдонимы

alias last-24-hours='sudo find * -ctime -1 -type f'
alias last-week='sudo find * -ctime -7 -type f'

, и вы можете сделать псевдоним

alias last-year='sudo find * -ctime -365 -type f'

, но он, вероятно, произведет очень длинный список.

-o -

Если вам нужен графический обзор, вы можете использовать baobab, чтобы увидеть, где много данных (и где вы могли бы «очистить дом» перед резервным копированием).

-o -

Альтернативой является использование инструмента, который может создавать инкрементную резервную копию, например baobab . Он автоматически найдет то, что нужно добавить или заменить в резервной копии.

1
ответ дан 23 May 2018 в 03:58
  • 1
    Я ценю помощь! Большое вам спасибо за ваши ответы и позаботьтесь. – Peacemaker5 23 November 2016 в 00:08

Другие вопросы по тегам:

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