查找文件并执行命令

时间:2014-11-13 14:31:26

标签: linux bash

我有很多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脚本,我认为代码错误不止一次。但我想这应该是基本结构

2 个答案:

答案 0 :(得分:19)

您可以使用find命令:

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

find提供了exec选项,它将在找到的每个文件上执行该命令。

答案 1 :(得分:7)

您不需要脚本。

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

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

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