хочу сюди!
 

Наталия

49 років, рак, познайомиться з хлопцем у віці 35-55 років

От это я сегодня выдал умняка

Бля, ну точно я гений. От это я сегодня наконец-то выдал умняк. Недели две маялся, как присвоить файлу уникальное имя, которое сохранит расширение (если оно есть) и так, чтобы было возможно откатить переименования, да еще и обрабатывать файлы по маске и списком.

Две бессонных недели - и сегодня посетило озарение. Элегантный скрипт, которым я уже переименовал в своем компе все, что только можно (шутка).

Очень горжусь. На шестом десятке осовить новую ось, новый язык и сваять нечто реально работающее (аналогов, кстати, не нашел) - это пять с плюсом. Впрочем, в своё время аналогичная моя программулина под вынь под названием now тоже шороху наделала.


Doppler = гарный линуксоид

Если нужен реально работающий скрипт, то строчку №46 надо раскомментить. Кому нужен исходник не в виде фотки, а текстом - то вот (но строчку 46 надо-таки раскоментить)

== begin file
#!/bin/bash

E_BADARGS=65 ## Это просто номер ошибки для выхода без параметров - понты
logfile="renamed_files.log"

if [ ! -n "$1" ]; then
  echo "Для переименования необходимо указать имя одного или нескольких файлов или их маску : `basename $0` file1 file2 (*.jpg *.png *.txt)"
  exit $E_BADARGS
fi

echo "#!/bin/bash" > $logfile
echo "##                    !!! Важная иноформация !!!" >> $logfile
echo "## Этот файл был создан в результате выполнения скрипта для переименования файлов в уникальное навсегда для этого файла имя." >> $logfile
echo "## Для того, чтобы отменить преименования, просто запустите этот сценарий." >> $logfile
echo "## Чтобы его запустить, нужна минимальная Линукс-подготовка, но если её нет," >> $logfile
echo "## то просто запустите в терминале каждую строчку этого файла по очереди" >> $logfile
echo "## или запустите данный файл из терминала. Типа [ bash renamed_files.log ]" >> $logfile
echo "## В любом случае (даже если Вы конченный дебил) тут содержатся имена оригинальных и переименованных файлов и флаг вам всем в очумелые ручки" >> $logfile


filelist=$*

for filename in $filelist ; do

    change_str=( `stat -c %y $filename` ) ## время последней модификации файла в виде 2015-06-27 16:07:54.243461522 +0300
    change_str=${change_str[0]}"-"${change_str[1]} ## объединяем два первых параметра (отсчет с нуля)
    change_str=${change_str//:/\^} ## заменяем : на ^

    newname=$change_str
    extension=${filename##*\.}  ## получаем расширение после последней точки (если она есть)

    if [ ${#extension} -ge ${#filename} ] ; then
        extension="" ## если точки нет, то нет и расширения
    else
        extension="."$extension ## иначе добавляем перед расширением точку
    fi

    newname=$newname$extension

    echo $filename " переименован в " $newname

    echo "mv $newname $filename" >> $logfile

    ## !!!!!!!!!! следующую строчку в реально работающем скрипте нужно раскомментить
    #mv $filename $newname
    ## !!!!!!!!!!

done

echo "    "
echo "    "
echo "                  переименование файлов закончено"
echo "          ============================================"
echo "для того, чтобы отменить преименования, откройте log-файл (а по сути готовый скрипт) "$logfile ", для чего необходимо минимальное знание Линукса, и прочтите хрень, которая внутри его содержится"
echo "                   ----- C уважением, Ваш Допплер -----"

exit
=== end оf file


Map
11

Коментарі

126.06.15, 22:52

бля, ну точно...(с)

    226.06.15, 22:52

    Баш? )

    Тоже кое-что писал на нем. Но это не совсем язык. Скорее система команд для линукс.

      Гість: сонный

      326.06.15, 22:54

      блин я только тотал вар переделывать могу

        Гість: _ _vs-

        426.06.15, 23:02

        ну всё, теперь ты настоящий программист)

          Гість: Shpilli Willi

          526.06.15, 23:03

          талантливый чел талантлив во всем

            626.06.15, 23:07Відповідь на 4 від Гість: _ _vs-

            Почему вдруг?

              726.06.15, 23:09

              десь мають час люди хуйньою страдати, ату жопа в маслі.....

                Гість: Г-н ГлавГений

                826.06.15, 23:09Відповідь на 3 від Гість: сонный

                блин я только тотал вар переделывать могуэто уже самодостаточно и гениально

                  Гість: Г-н ГлавГений

                  926.06.15, 23:10Відповідь на 7 від НеЖриМоэСало5

                  десь мають час люди хуйньою страдати, ату жопа в маслі.....от то є так, дійсно

                    1026.06.15, 23:13Відповідь на 9 від Гість: Г-н ГлавГений

                    десь мають час люди хуйньою страдати, ату жопа в маслі.....от то є так, дійсноГай Хітлер!!!

                      Сторінки:
                      1
                      2
                      3
                      4
                      6
                      попередня
                      наступна