如何递归提取文件但将它们保留在自己的文件夹中?

wyc*_*wyc 0 command-line terminal zip epub

这就是我提取文件夹中所有文件的方式(递归):

find -iname \*.epub -exec unzip -o {} \;
Run Code Online (Sandbox Code Playgroud)

但提取的文件最终全部位于父文件夹中:

Parent (Extracted Epub files)
  Child (Epub files)
  Child (Epub files)
Run Code Online (Sandbox Code Playgroud)

如何更改该命令,以便将它们提取到自己的文件夹中?

Parent
  Child (Epub files and extracted Epub files)
  Child (Epub files and extracted Epub Files)
Run Code Online (Sandbox Code Playgroud)

Ste*_*itt 6

如果您\xe2\x80\x99 使用 GNU find,请使用其-execdir操作:

\n
find -iname \\*.epub -execdir unzip -o {} \\;\n
Run Code Online (Sandbox Code Playgroud)\n

这将从unzip找到文件的每个目录运行,确保将文件提取到适当的子目录中。

\n

如果您指定起始目录,这至少也适用于某些 BSD(特别是 OpenBSD):

\n
find /path/to/start -iname \\*.epub -execdir unzip -o -- {} \\;\n
Run Code Online (Sandbox Code Playgroud)\n