On Sun, Jan 16, 2022, 12:33 PM Nicholas Geovanis <nickgeova...@gmail.com> wrote:
> > On Sun, Jan 16, 2022, 11:44 AM Gokan Atmaca <linux.go...@gmail.com> wrote: > >> Hello >> >> > $ cd destination-directory-for-extracted-files >> > $ find top-directory-of-tree-containing-archive-files -type f -name >> \*7z -exec 7z e {} \; >> >> I'm already able to import into a single folder with the following. My >> problem is extracting 7z files, which are in thousands of folders with >> a size of close to 100GB, into their own directories. >> # find /home/z0/ob7z/ -name "*.7z" -type f| xargs -I {} 7z x -p***** >> -oextract7z {}; >> > > You might need to use the xargs command in a pipe. It batches its > arguments so you can handle command strings that exceed the shell's command > buffer sizes. > Ok sorry, duh, you're already doing that :-) So write a 5-line script: Loop thru the fully qualified filenames; take the first part of each non-qualified filename using the shell's file matching operators, make a directory with that name under some parent directory,, then extract to it. The hardest part will be remembering that you have to set the "+x" flag on the script's file if you want to start it directly :-) On Sun, Jan 16, 2022 at 8:02 PM David Wright <deb...@lionunicorn.co.uk> >> wrote: >> > >> > On Sun 16 Jan 2022 at 18:59:49 (+0300), Gokan Atmaca wrote: >> > > >> > > I have hundreds of 7z compressed files in different folders. I want to >> > > open them. Every extracted file must be in the same directory. How can >> > > we do this? >> > >> > $ cd destination-directory-for-extracted-files >> > $ find top-directory-of-tree-containing-archive-files -type f -name >> \*7z -exec 7z e {} \; >> > >> > If the archives are not in one tree, but dispersed, you can specify >> > multiple directories between "find" and "-type". >> > >> > Cheers, >> > David. >> > >> >>