我有很多rar文件
- Folder/
--- Spain.rar
--- Germany.rar
--- Italy.rar
所有文件都不包含根文件夹,因此它只是文件。
提取时我想要实现的是这个结构:
- Folder/
-- Spain/
---- Spain_file1.txt
---- Spain_file2.txt
-- Germany/
---- Germany_file1.txt
---- Germany_file2.txt
-- Italy/
---- Italy_file1.txt
---- Italy_file2.txt
这样就创建了一个具有存档名称的文件夹,并将存档提取到其中。
我在另一个线程中找到了这个 bash 示例,但它对我不起作用,它试图创建一个以所有文件为名称的文件夹。
#!/bin/bash
for archive in "$(find . -name '*.rar')"; do
destination="${archive%.rar}"
if [ ! -d "$destination" ] ; then mkdir "$destination"; fi
unrar e "$archive" "$destination"
done
任何想法我怎么能做到这一点?
我的个人档案中有一个脚本可以做到这一点。更准确地说,它例如解压
Spain.rar
到一个名为 的新目录Spain
,除非其中的所有文件Spain.rar
都已经在同一个顶级目录下,则保留该顶级目录。用法(在您
$PATH
的名称下安装此脚本extract
并使其可执行后):您可以使用
unar
而不是unrar
. 当文件夹中有多个 rar 文件时,将默认创建一个同名的新目录。如果只有一个文件,您可以使用该
-d
选项。https://packages.ubuntu.com/search?keywords=unar