Я хочу сделать вторую резервную копию из последней созданной резервной копии. Итак, я попробовал команду оболочки:
last='ls -tr | tail -1'
cp -r /path/.../"$last" /path/.../backup/
но он копирует случайную резервную копию.
Он отлично работает с файлами .zip и .tar, но не с папками, так как мне это нужно здесь.
Я искал решение в Google, но не нашел ничего, связанного с этим, надеюсь, вы можете мне помочь.
Также можно использовать имя каталога, например:
2013-09-27-05-22-45
Я часто использую это в своих скриптах или в моей оболочке когда я работаю с каталогами в моем текущем каталоге.
alias lastd='ls -1drt * | tail -1'
Буква d означает только каталоги.
Вы можете использовать его в командной строке оболочки, например:
mkdir some_dir
cd $(lastd)
Я предлагаю использовать здесь "last = 'ls -1tr | tail -1'". Без «1» (единицы) в команде ls возвращает все файлы в вашем каталоге в одной строке.
Попробуйте использовать «u» или «U» вместо «t».
В зависимости от того, как каталог был создан в первую очередь и как он используется, может потребоваться использовать дату / время создания или дату / время последнего доступа.
И будьте осторожны !!!
Если к этим папкам обращаются другие программы / пользователи, у вас всегда будут неожиданные результаты.
(Эти пользователи могут также обновить метку времени в папке!)
Учитывая формат имени каталога, вам, вероятно, лучше просто отсортировать по имени файла:
last = 'ls | хвост -1 '
Если есть другие файлы / папки, которые портят вывод, просто используйте:
last = 'ls -d [0-9] [0-9] [0-9] [0-9] - [0-9] [0-9] - [0-9] [0-9] - [ 0-9] [0-9] - [0-9] [0-9] - [0-9] [0-9] | хвост -1 '
Это ограничит вывод только теми папками, имя которых имеет правильный макет (4 цифры, тире, 2 цифры, тире, 2 цифры, тире и т. Д.)