LINUX.ORG.RU

Помогите автоматизировать перемещение файлов

 ,


0

3

Уважаемые форумчане,поставили задачу. Так как в скриптах не особо понимаю. Нужно написать скрипт для перемещение файлов из папки A в папку C. Если перемещение успешно и папка С доступна, то не перемещать в папку B. Если C не доступна, то только в B? Такое вообще возможно реализовать на линукс?

Возможно.

________________

man cp, man bash.

там скрипт на пару строк.

PunkoIvan ★★★★
()
Последнее исправление: PunkoIvan (всего исправлений: 1)

Такое вообще возможно реализовать на линукс?

Эту фичу пилят, в следующем релизе этих ваших линуксов будет говорят.

v9lij ★★★★★
()

Это ни на одну тысячу строк кода. Пока с таким заданием только ИИ на нейронных сетях справляется.

IPR ★★★★★
()

Видишь, какой я добрый - я сделал приписку после «Возможно» хДД

По сути - делай сам и пиши сюда, что не получается, или вали в джобсы.

PunkoIvan ★★★★
()

Такое вообще возможно реализовать на линукс?

Линукс® и все? Можно и так, конечно, но это будут сотни строк на Си и еще несколько ассемблерных вставок.

Лучше взять еще хотя бы стандартную библиотеку; а еще лучше — определиться с тем, что у вас за операционная система, и посмотреть, нет ли в ней какого-нибудь командного интерпретатора и утилитки типа mv.

Zmicier ★★★★★
()
Последнее исправление: Zmicier (всего исправлений: 1)
Ответ на: комментарий от greenman

Если помимо прилагаемого справочного руководства (reference manual), то материалы под редакцией Грега Вулиджа.

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

А что нынче актуально?

Я, вероятно, напрасно ввернул слово «простроченный». Дело не столько в том, что книжка Купера (а ее перевод в особенности) подустарели (хотя это правда), а в том, что это прекрасная коллекция примеров, как делать не надо. Одна только беда — эти примеры не помечены как вредные, они помечены как рекомендуемые; так что читать это можно только уже умея их видеть.

Zmicier ★★★★★
()
Последнее исправление: Zmicier (всего исправлений: 1)
Ответ на: комментарий от Zmicier

Хватит рекламировать этот просроченный набор дурных примеров.

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

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

А приведи конкретику, милчеловек, а то что-то твой комментарий газификацию луж напоминает.

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

Примеры можно?

Да наверное надо бы уже сесть на час-другой да и перечитать все внимательно, уже с листочком и карандашом в руках, но вот как-то пока не сел. Пару примеров, если навскидку, вот я приводил. Начало десятой главы еще можно глянуть — тоже очень характерное.

Zmicier ★★★★★
()
Последнее исправление: Zmicier (всего исправлений: 2)
Ответ на: комментарий от Zmicier

Ты слишком придираешься.

То есть идет перечисление арифметических возможностей ГНУ Баша, и ВНЕЗАПНО вылазит пример использования внешней утилиты expr.

Ты, видимо решил, что absg - это мануал по bash, но это не так. Мануал по bash - это man bash. ABSG - это учебник по написанию shell-скриптов с использованием bash, там приводятся примеры различных способов решения различных задач, и что такое expr там тоже описано.

Прекрасный коллекция косяков: для начала — вызов сценария через $ <interpreter> <script> вместо назначения бита исполняемости как таковой

На файловой системе может быть использована опция монтирования noexec.

вызов сценария на Баше при помощи sh (привет, Кот), затем незакавыченная строковая переменная

Это придирки, которые в данном случае на результат не влияют. Тем более, что разница между bash и sh там описана, а так же описано, как нужно работать с переменными.

Black_Shadow ★★★★★
()
Последнее исправление: Black_Shadow (всего исправлений: 1)

Помогите автоматизировать перемещение файлов

Написание сценария на bash тебе уже советовали, добпвлю только две вещи:
1) Не пользуйся mv, а то мало ли что случится и копирование встанет.
Лучше сгачала cp, а потом после проверки удачности применить к источнику rm -fr ./
Но только осторожно, чтоб патч Брамина не получился.
2). Как я понимаю у тебя задача сделать бекап.
Может тебе лучше изучить использование rsync,
он update умеет, да ВРОДЕ и по сети передавать файлы на другой хост тоже.

Самый кошмар же не в этом, а в том что тебе надо настраивать запуск этого скрипта с помощью cron

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

из папки A в папку C. Если перемещение успешно и папка С доступна, то не перемещать в папку B

Ехал папка через папку…

перемещение успешно и папка С доступна

После перемещения доступна или до? Или достаточно просто успешного перемещения в неё? Тогда ведь просто:

mv A/* C/ || mv A/* B/

Правда это не переместит дотфайлы. Как переместить их тоже, догадаешься уж сам.

man bash
man mv

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

У меня как раз на оборот.

Начать писать скрипт можете со скрипта с простым повторением истории комманд.
То есть делаете перемещение руками и потом записываете комманды в скрипт.

(если очень лень учить самому то звоните хангутсом на torvn77@gmail.com, я вам за 600 р. или большую сумму расскажу о примерной последовательности действий по написанию такого скрипта)

torvn77 ★★★★★
()
Последнее исправление: torvn77 (всего исправлений: 2)
Ответ на: комментарий от torvn77

1) Не пользуйся mv, а то мало ли что случится и копирование встанет. Лучше сначала cp...

Пардон, с чего вы взяли, что у ОПа что-то куда-то копируется? Из условия это не следует.

А потом: «мало ли что» — это, собственно, что?

Zmicier ★★★★★
()
Последнее исправление: Zmicier (всего исправлений: 1)
Ответ на: комментарий от Black_Shadow

Ты, видимо решил, что absg - это мануал по bash

Да нет, я выше написал, что́ я решил про «ABSG».

Мануал по bash - это man bash

Да нет, руководство по Башу в bash(1) не помещается.

Это придирки

Да нет, это основы.

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

Хотелось бы верить. Но результат-то неутешительный — более половины из всех, кто пишет что-то на Баше и так или иначе показывает это всем, пишет такое, что хоть святых выноси.

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

Да только когда берут на работу, не говорят что должен писать скрипты на всех языках. А потом ставят перед фактом!

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

Только патч Бармина.

Брамин это милая звершука из Фола.

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

Но ведь каталог «C» может стать доступен во время перемещения, и тогда всё равно всё посыпется в «B». Плохой способ.

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

То что написано ТС, решается однострочником. Нужно пофайлово кидать, проходи циклом, кто мешает. Основа та же. Может случиться все что угодно, в условии нет ни намека на это. А если каталог A отвалился слать на почту админу не нужно разве? А если почта не доступна, то разве не нужно еще и в джаббер и логи и еще куда нибудь постучаться? Додумывать за ТС условия задачи это гиблый номер, можно много чего наворотить.

З.Ы. Без хорошего ТЗ, результат ХЗ.

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

Да, на самом деле все не так как написано тут. После реального уточнения. Многое поменялось, но не суть. Все записали, на работе, но не я.

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