LINUX.ORG.RU

mkdir


0

0

))и еще раз здравствуйте)) Уважаемые, начал я осваивать консоль, и тормознулся на первом же камушке)) как с помощью mkdir создать папку именем которой будет текущая дата и время?? вариант со скриптом подойдет, только нужно чтобы скрипт реагировал на путь указанный в консоли, тоесть: md_script /media/docs должен создать такую папку в /media/docs

Ответ на: комментарий от anon_666

а как теперь заставить систему копировать какието файлы в этот каталог?? пробовал в тупую : mkdir ../«`date`» cp backup.back ../«`date`» но не получается, т.к. `date` дает дату и время с точностью до секунды, ну соответственно пока дело доходит до ср то время соответственно поменялось, и оно пытается ложить уже не в ту папку...

задача, в данный момент простейшая, обзавестись минимальным бэком разного рода конфигов)) ну и заодно разобратся с коммандами))))

megabit
() автор топика
Ответ на: комментарий от Nao

такс, начинаю въезжать потихоньку)) тоесть mkdir (ну и не только он ) может брать вывод любой команды если ее запихать в «`...`». осталось только вывести время без секунд))

megabit
() автор топика
Ответ на: комментарий от megabit

Мда... а зевести переменную, положить в нее дату-время, а потому уже mkdir /media/docs/$CURDATE; Ну а затем файлы копируем, м?

kulti ★★
()
Ответ на: комментарий от megabit

Не проще бэкапить в архив сразу?

/bin/tar cfz /home/user/backups/`/bin/date "+%x"`.tar.gz /etc/conf.d/whatever/

Deleted
()
#!/bin/sh
CURDATE=`date`
mkdir $1/"$CURDATE"
cp backup.back $1/"$CURDATE"
zorgan
()
Ответ на: комментарий от megabit

>осталось только вывести время без секунд

Думаете не туда. Смысла выводить время без секунд нет, так как первый 'date' может быть запущен в 22:04:59, а второй в 22:05:00. Вам уже сказали, что существуют переменные, попробуйте:

CURDATE=`date`

ИМХО, со скриптописанием лучше идти в раздел «Development», откуда вас пошлют, возможно в сторону мануалов.

mky ★★★★★
()
Ответ на: комментарий от mky

> #!/bin/sh

CURDATE=`date`
mkdir $1/«$CURDATE»
cp backup.back $1/«$CURDATE»

это, по сути, то же самое что делал я:

mkdir ../«`date`»
cp backup.back ../«`date`»

date --rfc-3339=date - этот вариант ближе, но он тоже может либо выводить с секундами либо просто дату, а бэки должны делатся при каждом выключении компухтера, которых в один день может быть несколько))

Не проще бэкапить в архив сразу?

в архив не особо подойдет как вариант, все что нужно бэкапить разбросано то там то сям, разве что копировать это все в какойто /tmp потом все это в архив пихать, а потом сносить все содержимое этого же /tmp только так получается многовато телодвижений для винта ______________________________-- покаместь все это рисовал наклюнулась идея можно создавать папку md «`date --rfc-3339=date`»_1 можно все это запихать в скрипт который будет автоматически нумеровать каждую созданную папку за текущую дату, только не придумал еще как копировать чтото именно в эту папку...

megabit
() автор топика
Ответ на: комментарий от megabit

это, по сути, то же самое что делал я

OH SHI~

zorgan@localhost ~ $ touch backup.back
zorgan@localhost ~ $ ./test.sh /tmp/
zorgan@localhost ~ $ ls /tmp/Вск\ Авг\ \ 8\ 23\:00\:48\ MSD\ 2010/
backup.back
zorgan@localhost ~ $ cat test.sh 
#!/bin/sh
CURDATE=`date`
mkdir $1/"$CURDATE"
cp backup.back $1/"$CURDATE"
zorgan
()
Ответ на: комментарий от anon_666

Совсем и абсолютно неверно )

Это еще почему?? ну да, окультуривание никому никогда не мешало (нормальный скриптик считаю окультуриванием, в отличии от тупого набора комманд) НО!!!...

#!/bin/sh CURDATE=`date` ## ну опредедили мы переменную

mkdir $1/«$CURDATE» ## а здесь пошел аналог комманды mkdir «`date`»

cp backup.back $1/«$CURDATE» ## ну а тута cp backup.back «`date`»

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

megabit
() автор топика
Ответ на: комментарий от megabit

Потому, что пока скрипт исполняется - время идёт.
Всегда ваш, K.O.

anon_666
()
Ответ на: комментарий от megabit

>а здесь пошел аналог комманды mkdir «`date`»
Нет.

ну а тута cp backup.back «`date`»

Нет.
O_o

anon_666
()
Ответ на: комментарий от megabit

>mkdir $1/«$CURDATE» ## а здесь пошел аналог комманды mkdir «`date`»

You do it wrong. Здесь идет создание папки со значением уже определенной переменной. После 1-й строчки эта переменная уже не меняется.

fool_anon
()
Ответ на: комментарий от fool_anon

дык, серьезно, чтоли?? ...ушел пробовать...

megabit
() автор топика
Ответ на: комментарий от fool_anon

А таки так оно и есть, тоесть получается что переменная не в тупую вставляет кусок комманды в каждую строку скрипта, а выполняет то что в ней написано и вставляет в комманду предварительно полученый вывод)) ЗАРАБООТАЛО))))

спасибо всем))

megabit
() автор топика
Ответ на: комментарий от megabit

>переменная не в тупую вставляет кусок комманды в каждую строку скрипта

Наверное все-таки надо что-то изучить еще и до мануалов. Кто подскажет «программирование для самых маленьких»?

fool_anon
()
Ответ на: комментарий от fool_anon

> Наверное все-таки надо что-то изучить еще и до мануалов

возможно.... но спросить у когото всетаки проще чем макулатуру мять)))))))))))))))))))))))))))))))))))))))

megabit
() автор топика

Насчёт формата вывода date:
Можно выводить в любом формате, какой заблагорассудится, главное прочитать man date.

Nao ★★★★★
()

> как с помощью mkdir создать папку

Никак. В Юниксе папок нет. Читать man hier до просветления.

akk ★★★★★
()
Ответ на: комментарий от megabit

> кусок комманды

вставляет в комманду

По-русски слово «команда» пишется с одной буквой «м». Читать орфоргафический словарь до просветления.

akk ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.