Bash 将文件夹和子文件夹中的所有rar文件解压缩到同一文件夹
我发现这篇文章是关于将rar文件从一个文件夹提取到同一文件夹名的: 我想将子文件夹中的几个rar文件提取到同名子文件夹中,即Bash 将文件夹和子文件夹中的所有rar文件解压缩到同一文件夹,bash,find,unrar,Bash,Find,Unrar,我发现这篇文章是关于将rar文件从一个文件夹提取到同一文件夹名的: 我想将子文件夹中的几个rar文件提取到同名子文件夹中,即 /folder/sub-folder1/file1.rar-->/folder/sub-folder1/new-folder-same-name-as-sub-folder1/extracted_files.xyz /folder/sub-folder2/file2.rar-->/folder/sub-folder2/new-folder-same-name-as-sub
/folder/sub-folder1/file1.rar-->/folder/sub-folder1/new-folder-same-name-as-sub-folder1/extracted_files.xyz
/folder/sub-folder2/file2.rar-->/folder/sub-folder2/new-folder-same-name-as-sub-folder2/extracted_files.xyz
如何修改:
#!/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文件?或者,使用类似的东西
谢谢您可以使用
$loc
文件夹中的下一个管道,您希望文件名中的路径是:
find . -iname *.sh -type f -printf '%P\n' | xargs -i bash -c 'echo "$1" `dirname $1`/`echo "$1" | sed "s/\.sh$//1" | tr "/" "-"`' -- {}
如您所见,
$(dirname$archive)
将返回一个目录路径,管道sed“s/\.sh$//1”| tr”/“-”
可以返回一个文件名
,格式符合您的要求。如果我能很好地理解这个问题,您可以尝试mkdir-p$destination
。如果您想要sub-folder2/sub-folder2/
谢谢,听起来不错-今天可以试一试