2015-10-10 4 views
-1

Я разработал сценарий резервного копирования, который в основном копирует файл в другой каталог и добавляет к нему временную метку, которая склеена вместе, составляет число.Сравнение временных файлов резервного копирования и стирания самого старого

Что-то в этом роде.

cp file1 directory/{file1##*/} - {date +'%Y%m%d%H%M%S'} 

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

Это, честно, последнее место. Я пробовал и пытался, но безрезультатно!

Большое спасибо заранее!

EDIT:

Я хотел пойти на что-то вроде

for item in "$directory1" 
do 
if *number of file1 - 20151009141528 is smaller than all remaining backup files, remove* 
done 

ответ

0

Я бы просто отсортировать их по временной метки с помощью с помощью своего рода, как, что sort -k3 -r и дисплей только последний один, используя хвост tail -n 1. Помогло ли вам это?

+0

Это не моя вина. Я не знаю, как вставить это на мой скрипт, правда, скажем, поскольку я никогда не использовал хвост или сортировку. –

+0

'ls | sort -k3 -r | tail -n 1 | xargs rm' Это приведет к удалению файла с наименьшим числом. – grimsock

0

Вы можете запустить эту команду: ls|sort -V |head -n 1 |xargs rm в каталоге, где находятся резервные файлы. Он сортирует ваши файлы, а затем поднимает один в голове и удаляет его. Эта команда не заботится о том, является ли файл старейшим или новейшим. Он удаляет наименьшее число, основанное на sort. Если вы хотите запустить его в своем скрипте. просто перейдите в свой каталог, затем запустите команду. somthing like:

cd /path/to/directory; 
ls|sort -V |head -n 1 |xargs rm; 

 Смежные вопросы

  • Нет связанных вопросов^_^