URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 6677
[ Назад ]

Исходное сообщение
"bash"

Отправлено Adramelech , 14-Авг-07 16:37 
Вообщем есть пара файлов как в баше реализовать что бы удаляло самый старый по дате создания?

Содержание

Сообщения в этом обсуждении
"bash"
Отправлено phpcoder , 14-Авг-07 17:26 
> Вообщем есть пара файлов как в баше реализовать что бы удаляло
>самый старый по дате создания?

man find на тему ключей -atime/-mtime/-ctime и -delete

Только вот дату создания узнать вряд ли возможно.


"bash"
Отправлено Adramelech , 14-Авг-07 17:28 
>> Вообщем есть пара файлов как в баше реализовать что бы удаляло
>>самый старый по дате создания?
>
>man find на тему ключей -atime/-mtime/-ctime и -delete
>
>Только вот дату создания узнать вряд ли возможно.

да вообщемто у меня 3 архива создается в имени архива дата, преобразовывать строку в число неохота и геморойно, а вот как то брать самый дрвний файл и удалять его...? НУ и на том спасибо буду рытся дальше :)  


"bash"
Отправлено kriogen , 15-Авг-07 08:33 
удаляет файл, который был изменён последним:
ls -Ct | awk '{print $1}' | xargs rm
наверняка есть более изящный способ

"bash"
Отправлено Adramelech , 15-Авг-07 11:29 
>удаляет файл, который был изменён последним:
>ls -Ct | awk '{print $1}' | xargs rm
>наверняка есть более изящный способ

есть не очень канечно вчера накалякал

#!/bin/bash
TIME=$(date +%Y-%m-%d-%H-%M)
CURRENTPROFILE="/var/DOMAIN/profiles"
ARCHIVEFOLDER="/var/DOMAIN/profile/Backups"
tar -czvf $TIME.tar.gz $CURRENTPROFILE
cp $TIME.tar.gz $ARCHIVEFOLDER
rm $TIME.tar.gz
find "$ARCHIVEFOLDER" -type f -atime +3 -exec rm {} \; --- удаляет если к ффайлу не было обращения 3 дня
Кстати как зделать что бы оно при архивации пропускало мп3 файлы? Просто что то с таром неполучается :( Мож кто юзал такое? Знаю что можно но нимогу в силу ламерства реализовать буду очень благодарен за помощь.


"bash"
Отправлено phpcoder , 15-Авг-07 12:11 
[...]
>cp $TIME.tar.gz $ARCHIVEFOLDER
>rm $TIME.tar.gz

Можно проще: mv $TIME.tar.gz $ARCHIVEFOLDER

>find "$ARCHIVEFOLDER" -type f -atime +3 -exec rm {} \;

Я бы иначе написал:
find "$ARCHIVEFOLDER" -type f -atime +3 -delete


"bash"
Отправлено Adramelech , 15-Авг-07 12:15 
>[...]
>>cp $TIME.tar.gz $ARCHIVEFOLDER
>>rm $TIME.tar.gz
>
>Можно проще: mv $TIME.tar.gz $ARCHIVEFOLDER
>
>>find "$ARCHIVEFOLDER" -type f -atime +3 -exec rm {} \;
>
>Я бы иначе написал:
>find "$ARCHIVEFOLDER" -type f -atime +3 -delete

моно и так :) а с таром как отсеять мп3 не подскажешь?


"bash"
Отправлено phpcoder , 15-Авг-07 12:21 
[...]
>моно и так :) а с таром как отсеять мп3 не подскажешь?

man tar и искать по слову exclude



"bash"
Отправлено wDevil , 15-Авг-07 12:25 
>моно и так :) а с таром как отсеять мп3 не подскажешь?
>

man tar
--exclude pattern (-W exclude=pattern)
             Do not process files or directories that match the specified pat-
             tern.  Note that exclusions take precedence over patterns or
             filenames specified on the command line.


"bash"
Отправлено Mephisto , 29-Авг-09 19:03 
> Вообщем есть пара файлов как в баше реализовать что бы удаляло
>самый старый по дате создания?

man date - есть ключ который показывает дату последней модификации файла, в данном случае дату создания.