У меня есть эта команда tar, которую я пытаюсь запустить -
tar -N '2016-01-01' -jcvf archive.tar.bz2 /home/myhome
Внутри домашнего каталога у меня есть следующие файлы, которые нужно отфильтровать
-rwx------. 1 1000 1000 89097 Dec 3 2011 automysqlbackup
-rw-------. 1 1000 1000 11858 Nov 21 2011 automysqlbackup.conf
Однако, когда я смотрю на вывод команды, они все еще там -
tar: Option --after-date: Treating date `2016-01-01' as 2016-01-01 00:00:00
tar: Removing leading `/' from member names
...
/home/bamboo/automysqlbackup
/home/bamboo/automysqlbackup.conf
...
Почему эти файлы не фильтруются по датам правильно?
Спасибо.
Чтение документации GNU: https://www.gnu.org/software/tar/manual/html_node/after.html
[...] заставляет tar работать только с файлами, изменение данных которых или время изменения статусаs новее [...]
Если вы хотите, чтобы tar проводил сравнение дат на основе модификации данных файла (а не изменения статуса), затем используйте параметр --newer-mtime = date.
Думаю, если вы проверите свои файлы с помощью ls -lc /home/myhome
скорее, чем ls -l
вы увидите, что их ctime (это будет статус в документации) новее вашей даты
ctime изменяется при изменении inode, включая, помимо прочего, такие действия, как chmod, ln (жесткое связывание) и, конечно же, создание, например восстановление из архива tar.
Так что попробуйте вместо этого:
tar jcvf archive.tar.bz2 --newer-mtime=2016-01-01 /home/myhome