Как извлечь все файлы из корня архива и все файлы в папках в этом архиве? (То есть без папок)

У меня (регулярно) есть архив с примерно десятью папками, каждая из которых содержит 1 или 2 файла. Мне нужны все эти файлы, но только в 1 папке, а не в 10. Извлечение архива дает мне 10 папок и означает, что я должен вручную войти в каждую папку, чтобы вырезать и вставить файлы из каждой папки. Есть ли способ извлечь все файлы из всех папок?

Archive Manager и Xarchiver хранят каталоги, и я не могу найти способ изменить это. Также я не нашел свой ответ в Google, возможно, потому что я не знаю, как легко описать его.

0
задан 20 June 2018 в 21:48

1 ответ

Можно сделать это с tar

Следующая командная строка работает на меня (я протестировал ее с двумя уровнями подкаталогов).

tar -xv --transform='s#.*/##' -f tarfile

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

Тестовый пример

Каталог для 'помещения в tarfile'

$ find
.
./1
./1/hello
./1/3
./1/3/gday
./hej
./2
./2/4
./2/4/bye
./2/hi

tar -cvf ../tarfile .

Извлечение из tarfile

$ tar -xv --transform='s#.*/##' -f ../tarfile
./
./1/
./1/hello
./1/3/
./1/3/gday
./hej
./2/
./2/4/
./2/4/bye
./2/hi

Файлы списка

$ ls -1
1
2
3
4
bye
gday
hej
hello
hi

При создании tarfile, можно разделить/преобразовать имена файлов, когда Вы создаете tarfile (и не должен делать этого, когда Вы извлекаете файлы).

tar -cv --transform='s#.*/##' -f ../tarfile .

$ tar -xvf ../tarfile
./
1/
hello
3/
gday
hej
2/
4/
bye
hi

$ ls -1
1
2
3
4
bye
gday
hej
hello
hi
1
ответ дан 29 October 2019 в 02:10

Другие вопросы по тегам:

Похожие вопросы: