TAR-вывод в одной папке для всех файлов, разбросанных по разным папкам.

Вопрос или проблема

Я хочу создать архив tar из множества файлов, разбросанных по разным папкам, в одну выходную папку. Хотя папки называются по-разному, все файлы внутри имеют расширение .bz2.

Как я могу это сделать?

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

cd TOPLEVELDIR
tar cvf MyFile.tar `find . -name '*.bz2' -print`

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

Ответ или решение

Чтобы создать архив tar, содержащий все файлы с расширением .bz2, расположенные в различных папках, и сохранить его в одной выходной папке, вы можете использовать следующую команду в терминале. Работу можно выполнить с помощью стандартных утилит Unix/Linux, что делает процесс достаточно простым. Ваша задача делится на несколько этапов.

Шаг 1: Перейдите в корневую директорию

Сначала вам нужно перейти в корневую директорию, которая содержит все папки с файлами .bz2. Для этого выполните команду:

cd ПУТЬ_К_ДИРЕКТОРИИ

Замените ПУТЬ_К_ДИРЕКТОРИИ на путь к вашей топовой директории.

Шаг 2: Используйте команду find

Следующий шаг — найти все файлы с расширением .bz2 в подкаталогах. Это можно сделать с помощью команды find. Обратите внимание на использование косых кавычек ` для выполнения команды:

tar cvf /ПУТЬ_К_ВЫХОДНОЙ_ПАПКЕ/MyArchive.tar `find . -name '*.bz2'`

Замените /ПУТЬ_К_ВЫХОДНОЙ_ПАПКЕ на путь к папке, куда вы хотите сохранить архив. Эта команда создаст файл MyArchive.tar, содержащий все файлы .bz2, найденные в текущих и вложенных директориях.

Заметки по поводу пробелов в именах файлов

Команда, приведенная выше, предполагает, что в именах файлов и каталогов нет пробелов. Если такие пробелы есть, рекомендуется использовать другой синтаксис, чтобы избежать ошибок. Вы можете использовать -print0 в команде find и xargs с -0, чтобы корректно обрабатывать такие имена:

find . -name '*.bz2' -print0 | tar cvf /ПУТЬ_К_ВЫХОДНОЙ_ПАПКЕ/MyArchive.tar --null -T -

Шаг 3: Проверка результата

После выполнения команды вы можете проверить, был ли успешно создан архив, с помощью команды:

tar tvf /ПУТЬ_К_ВЫХОДНОЙ_ПАПКЕ/MyArchive.tar

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

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...