Создайте файл tar в подкаталоге каталога, который нужно заархивировать
Я хотел бы создать tar-файл из всех файлов в каталоге за вычетом подкаталога в этом каталоге и поместить этот tar-файл в один из подкаталогов. Например, у меня есть несколько TXT-файлов в /test, а также другой каталог в /test под названием ArchivedFiles. Я хотел бы сказать команде tar архивировать все файлы.txt и поместить ее в /test/ArchivedFiles.
Как мне это сделать?
2 ответа
tar cf test/foo/test.tar -- `find test -maxdepth 1 -name '*.txt' -type f`
Я думаю, что должен делать то, что вы хотите.
Опция, которая не будет работать из-за возраста вашей команды tar:
find test -maxdepth 1 -type f -name '*.txt' -print0 | tar -cf test/foo/test.tar --null --files-from -
У вас проблемы, поэтому вы можете попробовать следующие команды:
tar cf test/foo/test.tar `find test -maxdepth 1 -name '*.txt' -type f`
echo tar cf test/foo/test.tar `find test -maxdepth 1 -name '*.txt' -type f`
tar c f test/foo/test.tar `find test -maxdepth 1 -name '*.txt' -type f`
find test -maxdepth 1 -name '*.txt' -type f
И вставьте вывод, чтобы мы могли видеть, что происходит.
Учитывая, что поиск также очень унаследован, давайте попробуем следующее:
tar cf test/foo/test.tar test/*.txt
Следующая команда будет работать. Он помещает любые подкаталоги в tar, но не помещает содержимое этих подкаталогов в tar. Это означает, что если вы поместите tar в subdir, вам не придется беспокоиться о том, что он помещает себя внутрь себя...
Например, если вы хотите поместить все файлы в текущем каталоге в файл tar с именем mytar.tar, который находится в подкаталоге d1:
tar --no-recursion -cvf d1/mytar.tar *