![解压到某个文件夹然后删除源文件夹](https://linux22.com/image/916646/%E8%A7%A3%E5%8E%8B%E5%88%B0%E6%9F%90%E4%B8%AA%E6%96%87%E4%BB%B6%E5%A4%B9%E7%84%B6%E5%90%8E%E5%88%A0%E9%99%A4%E6%BA%90%E6%96%87%E4%BB%B6%E5%A4%B9.png)
以下命令用于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