解压到某个文件夹然后删除源文件夹

解压到某个文件夹然后删除源文件夹

以下命令用于unrar将档案提取到特定文件夹。

unrar e -r -o- /home/username/source/directory/*.rar /home/username/copy/extracted/to

里面/home/username/source/directory有一些包含.rar档案和一些其他文件的子目录(.r01,,.r02...)。我想将.rar文件提取到/home/username/copy/extracted/to并删除该/home/username/source/directory文件夹或该文件夹中的所有文件。

在上面的命令中,提取完成后我应该把删除命令放在哪里?

答案1

更新

在 OP 澄清 .rar 文件位于子目录内后,我认为这是一种更好的方法。

用于find查找目录及其子目录中的所有 .rar 文件。使用find-exec标志执行unrar命令以解压文件,并&& rm -r /home/username/source/directory在末尾添加以删除/home/username/source/directory文件夹及其内容:

find /home/username/source/directory/ -type f -name "*.rar" -exec unrar e -o- {} /home/username/copy/extracted/to \; && rm -r /home/username/source/directory

旧答案

您可以执行以下操作:

for file in /home/username/source/directory/*.rar; do unrar e -r -o- "$file" /home/username/copy/extracted/to && rm -- "$file"; done

相关内容