如何获取使用`find`找到的最后一个文件夹的名称

时间:2019-01-31 23:38:55

标签: bash

我有一个包含多个组件的文件夹结构:

DbModule("tertiaryDb")

我想找到每个组件文件夹,在其上执行命令,并使用该文件夹名称作为我的src-/ |-components-/ |-componentA |-componentB |-componentC 目录中每个输出文件夹的名称。所以它应该像这样:

dist/

当前我正在运行以下命令:

dist-/ |-componentA |-componentB |-componentC

但是这给了我BABEL_ENV=cjs find src/components/** -type d -exec babel {} --out-dir dist/{} \;内的完整文件路径,因此结果如下:

{}

我希望结果是:

src/components/componentA/index.js -> dist/src/components/componentA/index.js

我该如何实现?

预先感谢

1 个答案:

答案 0 :(得分:1)

请尝试以下操作:

while read -r -d "" path; do
    basename=${path##*/}    # will remove "src/components/" portion
    BABEL_ENV=cjs babel "$path" --out-dir "dist/$basename"
done < <(find src/components/* -type d -print0)

它将find的输出传输到while循环,在该循环中修改了路径名以满足您的要求。