首页 > 解决方案 > 一个 bash 脚本,用于解压 linux 子目录中的所有文件

问题描述

我在 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 的 Windows 工作脚本

标签: linuxbashubuntuunrar

解决方案


如果您只想解压缩找到目录中的每个 rar 文件,find可以直接执行此操作。这需要一些时间来适应,但非常值得学习。

find . -name '*.rar' -execdir unrar {} \;

简而言之,说要在找到它的目录中的每个找到的文件上-execdir运行这些东西;占位符被替换为文件名\;{}


推荐阅读