Вопрос или проблема
Я хочу создать архив 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
, вы можете легко собрать нужные файлы в одном архиве. Следуя приведенным инструкциям, вы сможете эффективно организовать свои данные и упростить работу с файлами.