У меня (регулярно) есть архив с примерно десятью папками, каждая из которых содержит 1 или 2 файла. Мне нужны все эти файлы, но только в 1 папке, а не в 10. Извлечение архива дает мне 10 папок и означает, что я должен вручную войти в каждую папку, чтобы вырезать и вставить файлы из каждой папки. Есть ли способ извлечь все файлы из всех папок?
Archive Manager и Xarchiver хранят каталоги, и я не могу найти способ изменить это. Также я не нашел свой ответ в Google, возможно, потому что я не знаю, как легко описать его.
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