linux - 一个 bash 脚本,用于解压 linux 子目录中的所有文件

标签 linux bash ubuntu unrar

我在 Ubuntu 服务器 18.04 上。
我的主要目标是从 的父目录运行脚本解压父目录下所有子目录下的所有文件 .
我也安装了apt install unrar它位于“/usr/bin/unrar”。
这是我到现在为止的想法。但它似乎不起作用:

for dir in 'pwd/*/'
do
  dir=${dir%*/} 
  cd dir
    for file in dir/*/
  do
    "/usr/bin/unrar" x dir/*.r* dir/
done
我找到了一个使用 7zip here 的 Windows 工作脚本

最佳答案

这是一个开始的例子;根据需要调整模式和 echo 语句:

#!/bin/bash

pattern='*/*.rar'
archives=($pattern)

if [[ "${archives[@]}" == "$pattern" ]]; then
    echo NONE 1>&2
    exit
fi

for rpath in "${archives[@]}"; do
    dir=${rpath%/*}
    rar=${rpath##*/}
    pushd "$dir" > /dev/null
    echo -e "\ndir: $dir"
    echo unrar args "$rar"
    popd > /dev/null
done

关于linux - 一个 bash 脚本,用于解压 linux 子目录中的所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63142398/

相关文章:

bash - 如何使用 sed 从字符串中去除前 X 个字符?

eclipse - 如何在 Ubuntu 13.10 上运行 Eclipse

linux - 从 WINE 中运行的程序执行 Shell 命令

regex - 需要帮助使用 grep 从列表中提取名称

android - 如何将我的项目从 Android Studio 添加到我的 GitHub 页面?

git - 在 bash 脚本中运行 git commit for loop for multiple repos

c# - 在 Windows 环境与 Ubuntu 环境中执行 "dotnet lambda package"的不同包

java - Ubuntu 无法启动另一个 Java 线程

linux - 删除名为 --exclude=*.xdr 的文件

linux sed 命令 - 在 csv 行的每一端添加字符串