查找文件并执行命令

问题描述 投票:11回答:2

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

linux bash
2个回答
18
投票

您可以使用find命令:

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

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


7
投票

您不需要脚本。

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

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

find . -name "*.rar" | xargs unrar x
© www.soinside.com 2019 - 2024. All rights reserved.