Переименование в текущую дату (rename to data name)

Языки программирования, IDE, компиляторы, интерпретаторы
Правила форума
Правильно сформулированный вопрос и его грамотное оформление способствует высокой вероятности получения достаточно содержательного и по существу ответа.
Аватара пользователя
Dja
Сообщения: 1997
Зарегистрирован: 27 авг 2016, 17:03
Решено: 11
Откуда: Воскресенск
Благодарил (а): 302 раза
Поблагодарили: 221 раз

Переименование в текущую дату (rename to data name)

Сообщение Dja » 03 фев 2017, 09:32

Взято отсюда

Код: Выделить всё

#!/bin/bash

DIR_IN="input"
DIR_OUT="output"

if [ ! -d "$DIR_IN" -o ! -d "$DIR_OUT" ]
then
exit 1
fi

find "$DIR_IN" -mindepth 1 -type f | while read FILE
do
FILE_NAME=$(basename "$FILE")
unset FILE_SUFFIX
if [[ "$FILE_NAME" == *.* ]]
then
FILE_SUFFIX=".${FILE_NAME##*.}"
fi
mv "$FILE" "$DIR_OUT/$(date --date="$(stat --printf=%y "$FILE")" +%d-%m-%Y)$FILE_SUFFIX"
done

Для переименования с временной меткой mv "$FILE" "$DIR_OUT/$(date --date="$(stat --printf=%y "$FILE")" +%H:%M_%d-%m-%Y)$FILE_SUFFIX"
Новичок? - ознакомься с правилами
Изображение
В поисках истины :grabli:
Изображение

Аватара пользователя
zuzabrik
Сообщения: 759
Зарегистрирован: 29 авг 2016, 09:08
Решено: 15
Благодарил (а): 48 раз
Поблагодарили: 218 раз

Переименование в текущую дату (rename to data name)

Сообщение zuzabrik » 03 фев 2017, 09:50

во первых смущает как он будет работать со скрытыми файлами (*.* шаблон вроде и их включает)
во вторых раз уж есть операция добавления даты, хотелось бы и скрипт обратного преобразования. из файла+дата к файлу :-D
Имею желание иметь всех желающих, но не имею желающих.

Аватара пользователя
Chocobo
Сообщения: 4581
Зарегистрирован: 27 авг 2016, 19:57
Решено: 108
Откуда: НН
Благодарил (а): 374 раза
Поблагодарили: 1227 раз

Переименование в текущую дату (rename to data name)

Сообщение Chocobo » 03 фев 2017, 09:51

Переименование чего в текущую дату? :acute: :joke:
Изображение

Аватара пользователя
Dja
Сообщения: 1997
Зарегистрирован: 27 авг 2016, 17:03
Решено: 11
Откуда: Воскресенск
Благодарил (а): 302 раза
Поблагодарили: 221 раз

Переименование в текущую дату (rename to data name)

Сообщение Dja » 03 фев 2017, 09:53

Chocobo, имени файла конечно :-D
zuzabrik, переименовывание того файла, который надо переименовать. Как правило это логи или бэкапы. А эти файлы видимы. Невидимый файл туда случайно не попадет. Если не нужна дата, а нужен файл - то просто не переименовываешь.
Новичок? - ознакомься с правилами
Изображение
В поисках истины :grabli:
Изображение

Аватара пользователя
Chocobo
Сообщения: 4581
Зарегистрирован: 27 авг 2016, 19:57
Решено: 108
Откуда: НН
Благодарил (а): 374 раза
Поблагодарили: 1227 раз

Переименование в текущую дату (rename to data name)

Сообщение Chocobo » 03 фев 2017, 10:00

Ты ж любишь везде конкретику :blink: - вот и тут стоило бы расписать, что это переименование - является переносом файлов из папки ./input в папку ./output с попутным изменением имени на дата+имяфайла

P.S. input / output лучше бы ключами запуска передавать, как и возможность выбора между дата и датавремя
Изображение

Аватара пользователя
zuzabrik
Сообщения: 759
Зарегистрирован: 29 авг 2016, 09:08
Решено: 15
Благодарил (а): 48 раз
Поблагодарили: 218 раз

Переименование в текущую дату (rename to data name)

Сообщение zuzabrik » 03 фев 2017, 10:35

Dja писал(а):Источник цитаты переименовывание того файла, который надо переименовать. Как правило это логи или бэкапы. А эти файлы видимы. Невидимый файл туда случайно не попадет. Если не нужна дата, а нужен файл - то просто не переименовываешь.


Я бы посоветовал просто архивировать логи или бекапы и давать дату архиву, а не файлам. Потому и спросил про обратное переименование. Очень интересно просто как забекапив таким образом например папку doc с сотней документов в нем ты распакуешь их обратно. будешь у каждого файла вручную убирать дату создания архива? :-D Или не дай бог архивировать так системные папки, типа /etc :-D

Уж лучше нечто типа такого. Создает из содержимого заданых папок архив с датой. Распаковать его обратно не сложно, а вот переименовать обратно все файлы чтобы вернуть в систему, задачка не такая тривиальная. Особенно если файлы в своем названии уже содержали дату до вставки текущей даты.

Код: Выделить всё

#!/bin/bash

FILES="bin  Видео  Документы  Загрузки  Изображения  Музыка  Общедоступные  Шаблоны"

cd ..
tar -czvf ./backup/backup_$(date +%Y-%m-%d_%H-%M-%S).tar.gz $FILES
Имею желание иметь всех желающих, но не имею желающих.

Аватара пользователя
colonel
Сообщения: 295
Зарегистрирован: 18 дек 2016, 09:08
Решено: 10
Благодарил (а): 14 раз
Поблагодарили: 87 раз

Переименование в текущую дату (rename to data name)

Сообщение colonel » 03 фев 2017, 12:53

Dja писал(а):Источник цитаты... переименовывание того файла, который надо переименовать....

zuzabrik писал(а):Источник цитаты Я бы посоветовал просто архивировать логи или бекапы и давать дату архиву, а не файлам

файлы ...фуяйллы папки ... архивы ... :dash2:

Понятно что лучше конечн архивом бекапить и добавить в имя архивируемого файла или папки дату\время нет проблем
zuzabrik писал(а):Источник цитаты во вторых раз уж есть операция добавления даты, хотелось бы и скрипт обратного преобразования. из файла+дата к файлу
а вот это ужо точно засада :-D

но коль вопрос стоит - "переименовывание того файла, который надо переименовать"
то ,..
собсно вот скриптик -
rename-data.sh.zip

вставить в него и другой формат даты-времени ( и если надо то и архивирование добавить и тд. итп ) , не должно составить труда.
а так... если его в скрипты ФМ зафигачить
то ПКМ по выбранному файлу в Контекстном меню -> Сценарии -> (ентот скриптик ) и ...
выделенный(выбранный кликом при ПКМ) файлик или папка будут переименованы добавлением текущего даты-времени перед собсно именем файла.
ну и там истчшо сообщение должоно выскочить о проведённом переименовании.
И если дальше извращаться , то можно подумать и как сделать чтоб кучей переименовывать ... в каталоге или несколько выделенных ...
конечно это не полное переименование имени в дату(как было говорено в начале темы), зато нет проблем с обратным преобразованием и поиском имени которое было до переименования в дату.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось colonel 03 фев 2017, 13:33, всего редактировалось 4 раза.
"Не ты выбираешь Linux, а Linux выбирает тебя"
(с)Себастьян Перейра, торговец чёрным деревом

Аватара пользователя
Dja
Сообщения: 1997
Зарегистрирован: 27 авг 2016, 17:03
Решено: 11
Откуда: Воскресенск
Благодарил (а): 302 раза
Поблагодарили: 221 раз

Переименование в текущую дату (rename to data name)

Сообщение Dja » 03 фев 2017, 12:55

zuzabrik, логи обзываются чтоб опубликоваться.
Новичок? - ознакомься с правилами
Изображение
В поисках истины :grabli:
Изображение

Аватара пользователя
zuzabrik
Сообщения: 759
Зарегистрирован: 29 авг 2016, 09:08
Решено: 15
Благодарил (а): 48 раз
Поблагодарили: 218 раз

Переименование в текущую дату (rename to data name)

Сообщение zuzabrik » 03 фев 2017, 17:53

Dja писал(а):Источник цитаты логи обзываются чтоб опубликоваться.


Так и пиши. Мой куратор из ФСБ просит логи из чата IRC в формате с датой лога. Или ты все это не для своего бота в канале ирки делаешь? :-D
Имею желание иметь всех желающих, но не имею желающих.

Аватара пользователя
Dja
Сообщения: 1997
Зарегистрирован: 27 авг 2016, 17:03
Решено: 11
Откуда: Воскресенск
Благодарил (а): 302 раза
Поблагодарили: 221 раз

Переименование в текущую дату (rename to data name)

Сообщение Dja » 03 фев 2017, 17:56

zuzabrik, я уже сделал. Просто делюсь. Мало ли кому пригодится.
Новичок? - ознакомься с правилами
Изображение
В поисках истины :grabli:
Изображение

Аватара пользователя
Dja
Сообщения: 1997
Зарегистрирован: 27 авг 2016, 17:03
Решено: 11
Откуда: Воскресенск
Благодарил (а): 302 раза
Поблагодарили: 221 раз

Переименование в текущую дату (rename to data name)

Сообщение Dja » 03 фев 2017, 18:21

Во избежание дальнейших недопониманий вот видео
https://vimeo.com/202424042
Новичок? - ознакомься с правилами
Изображение
В поисках истины :grabli:
Изображение


Вернуться в «Скриптинг и программирование»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей