2017-01-18 3 views
-2

Мне поручено помочь автоматизировать некоторые из наших процессов архивации. Я только новичок в Unix/Linux, поэтому я был бы признателен за помощь. Один из запросов заключается в tar любых файлах в папке1 и поместить tar-файл в папку2.Тар файл в другой каталог, сохраняя исходное имя файла

Один файл отбрасывается в папке 1 каждый час. Формат выглядит так: ABC_TIMESTAMP.gz. (Однако это может быть не всегда «ABC», это может быть BDC или аналогичный).

Так что в основном мне нужно tar /folder1/ABC_TIMESTAMP.gz в /folder2/ABC_TIMESTAMP.gz.tar.

Затем, наконец, удалите исходный файл в папке1.

+0

Вы можете запустить tar, а затем mv. – VladFr

+0

Это работает. Это позаботится о движущейся части. Тем не менее, основная проблема по-прежнему заключается в том, что tar-файлы входят. Так что, если поступают 2 файла, ABC_TIMESTAMP.gz и DEF_TIMESTAM.gz, скрипт моей команды для создания ABC_TIMESTAMP.gz.tar и DEF_TIMESTAM.gz.tar? Файлы необходимо разделить отдельно и не скомпилировать в один гигантский файл. – Hubert

ответ

0

Попробуйте. Я предположил, что все файлы в папке1 - это формат .gz. Запишите этот сценарий и запустите.

#!/bin/bash 

ls folder1 >tmp.file 

while read line 
do 
     tar -cf folder2/"$line".tar -C folder1 "$line" 
     rm folder1/$line 
done < tmp.file 
+0

Хм .... Я мог бы сделать это неправильно, но файлы в папке1 были удалены, но ничего не было создано в папке2 – Hubert

+0

Есть ли у вас ошибка? – Rocoder

Смежные вопросы