Bash,find文件并执行命令

我有很多rar档案在个人文件夹结构,并希望脚本拆包全部。

我很难弄清楚应该怎么做,需要一些帮助。

#!/bin/bash ## For all inodes for i in pwd; do ## If it's a directory if [ -d "$i" ] then cd $i ## Find ".rar" file for [f in *.rar]; do ./bin/unrar x "$f" # Run unrar command on filename cd .. done done done 

我不熟悉bash脚本,我认为代码错误不止一次。 但我想这应该是基本结构

Solutions Collecting From Web of "Bash,find文件并执行命令"

您可以使用find命令:

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

find提供的选项exec将执行该命令的每个文件被发现。

你不需要脚本。

 find . -name "*.rar" -exec unrar x {} \; 

另外,你可以将find的结果传递给unrar命令。

 find . -name "*.rar" | xargs unrar x