Сценарий оболочки для дублирования каталога, блокировки одного и перемещения обоих в новый каталог - почти там? - PullRequest
1 голос
/ 07 октября 2011

Я репортер, который работает с наборами данных. Каждый раз, когда я получаю новый набор данных, я сразу делаю две вещи: дублирую файл (ы) и блокирую оригиналы.

Я хочу автоматизировать этот процесс. Изменяя сценарий оболочки, который я использую для создания вложенных папок для создания отчетов по проектам , и связывая его вместе с кучей команд, я смог достичь базовой функциональности, но это грязно. Буду признателен за помощь в оптимизации.

Вот что я делаю сейчас (потерпите меня, и я обещаю быть максимально ясным):

Я загружаю данные в папку рабочего стола под названием «DataInbox», где у меня также есть следующий сценарий оболочки, сохраненный как newdata.sh:

    #!/bin/bash

if [[ -z "${1}" ]]; then
  die "FolderName Required"
fi


/bin/mkdir -p ~/Desktop/DataFarm/$1/{ProtectedOrig,Data}

echo -n "---Data Folder Setup

---Data Introduction

---Data Audit/Manipulation

---Data Queries" > ~/Desktop/DataFarm/$1/Data/DataJournal.txt

Выполнив bash newdata.sh DirectoryName, я создаю каталог с подпапками «Данные» и «ProtectedOrig» и текстовый файл с именем «DataJournal.txt» с четырьмя встроенными заголовками.

Внутри каталога «DataInbox» я запускаю этот беспорядок, только связанный с &&:

$ ditto NewData/  NewDataCopy

$ bash newdata.sh DirectoryName

$ mv NewData/ /Users/JSG/Desktop/DataFarm/DirectoryName/ProtectedOrig/NewData

$ mv NewDataCopy/ /Users/JSG/Desktop/DataFarm/DirectoryName/Data/NewDataCopy

$ chflags -R uchg /Users/JSG/Desktop/DataFarm/DirectoryName/ProtectedOrig/

Как я уже сказал, я бы хотел упростить это. На самом деле, я действительно хотел бы превратить все это в сценарий оболочки, и я изо всех сил стараюсь заставить его работать. Заранее спасибо от нетерпеливого новичка.

1 Ответ

2 голосов
/ 07 октября 2011

Не уверен, что я неправильно понял ваш вопрос, но вы хотите объединить все это в один скрипт, как этот?

#!/bin/bash

if [[ -z "${1}" ]]; then
  die "FolderName Required"
fi

newDirName="DirectoryName"
newBaseDir="~/Desktop/DataFarm/$1/"
/bin/mkdir -p $newBaseDir/{ProtectedOrig,Data}

echo -n "---Data Folder Setup

---Data Introduction

---Data Audit/Manipulation

---Data Queries" > $newBaseDir/Data/DataJournal.txt

ditto NewData/ NewDataCopy
newdata.sh $newDirName
mv NewData/ $newBaseDir/ProtectedOrig/NewData
mv NewDataCopy/ $newBaseDir/Data/NewDataCopy
chflags -R uchg $newBaseDir/ProtectedOrig/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...