Я хочу перечислить все файлы, которые я изменил в этом году, и вернуть их обратно. Кто-нибудь знает, есть ли команда, чтобы перечислить их? Заранее спасибо.
Предполагая, что вы хотите сохранить дату, ограниченную текущим годом, вы можете использовать -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/, а затем скопировал файл.
Чтобы просмотреть все файлы, измененные в этом году, и его детали:
find / -mtime -365 -ls
Это будет отображать все из последних 365 дней.
Чтобы отображать только обычные файлы, добавьте -type f к этой команде.
Чтобы получить список всех измененных файлов (с полным путем):
find / -mtime -365
Вы можете резервировать эти файлы в любом месте, используя cp или scp и т. д.
Добавьте -printf "%f\n" в конец команды, чтобы печатать только имена файлов.
Я использую некоторые псевдонимы
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 . Он автоматически найдет то, что нужно добавить или заменить в резервной копии.