将 rar 文件提取到相同的文件夹名称
extract rar files to same folder name
我在特定目录中有很多 .rar
个文件夹。我想提取同一目录下每个rar
文件夹的内容,并且rar
文件夹的所有提取文件应放在与rar
文件夹同名的新文件夹中名字.
例如,如果有两个 rar
文件:one.rar
和 two.rar
,则脚本应创建两个同名文件夹:one
和 two
。名为 one
的文件夹应包含从 one.rar
中提取的文件,名为 two
的文件夹应包含从 two.rar
.
中提取的文件
命令:unrar e $filename 提取 rar 文件的所有内容,但不创建目标文件夹。
如果我使用unrar e $filename $DESTINATION_PATH
,那么由于可以有很多rar
个文件,在目标路径中手动创建文件夹名称会花费很多时间。如何使用 shell 脚本实现此目的?
到目前为止我只写了这些行:
loc="/home/Desktop/code"` # this directory path contains all the rar files to be extracted <br/>
for file in "$loc"/*
do
unrar e $file
done
我不知道如何创建与 rar
名称相同的文件夹名称,并在新创建的同名文件夹中提取该 rar
的所有文件。
如有任何帮助,我们将不胜感激。提前致谢!!
您可以使用 sed
从您的档案中删除文件扩展名。查看以下将 destination
设置为相应名称的脚本。
#!/bin/sh
for archive in "$(find $loc -name '*.rar')"; do
destination="$( echo $archive | sed -e 's/.rar//')"
if [ ! -d "$destination" ] ; then mkdir "$destination"; fi
unrar e "$archive" "$destination"
done
如果您使用的是bash
,那么您只需使用
#!/bin/bash
for archive in "$(find $loc -name '*.rar')"; do
destination="${archive%.rar}"
if [ ! -d "$destination" ] ; then mkdir "$destination"; fi
unrar e "$archive" "$destination"
done
我在特定目录中有很多 .rar
个文件夹。我想提取同一目录下每个rar
文件夹的内容,并且rar
文件夹的所有提取文件应放在与rar
文件夹同名的新文件夹中名字.
例如,如果有两个 rar
文件:one.rar
和 two.rar
,则脚本应创建两个同名文件夹:one
和 two
。名为 one
的文件夹应包含从 one.rar
中提取的文件,名为 two
的文件夹应包含从 two.rar
.
命令:unrar e $filename 提取 rar 文件的所有内容,但不创建目标文件夹。
如果我使用unrar e $filename $DESTINATION_PATH
,那么由于可以有很多rar
个文件,在目标路径中手动创建文件夹名称会花费很多时间。如何使用 shell 脚本实现此目的?
到目前为止我只写了这些行:
loc="/home/Desktop/code"` # this directory path contains all the rar files to be extracted <br/>
for file in "$loc"/*
do
unrar e $file
done
我不知道如何创建与 rar
名称相同的文件夹名称,并在新创建的同名文件夹中提取该 rar
的所有文件。
如有任何帮助,我们将不胜感激。提前致谢!!
您可以使用 sed
从您的档案中删除文件扩展名。查看以下将 destination
设置为相应名称的脚本。
#!/bin/sh
for archive in "$(find $loc -name '*.rar')"; do
destination="$( echo $archive | sed -e 's/.rar//')"
if [ ! -d "$destination" ] ; then mkdir "$destination"; fi
unrar e "$archive" "$destination"
done
如果您使用的是bash
,那么您只需使用
#!/bin/bash
for archive in "$(find $loc -name '*.rar')"; do
destination="${archive%.rar}"
if [ ! -d "$destination" ] ; then mkdir "$destination"; fi
unrar e "$archive" "$destination"
done