移动和重新键入文件的Shell脚本



我正在尝试创建一种方法,我可以运行一行代码来移动和重命名文件。

当前结构。

src/component/fb/*.js

目标和我想要移动到的格式:

public/api/*.txt

示例:test.js变成test.txt

写成四行:

for i in src/component/fb/*.js; do
i_basename=${i##*/}
mv -- "$i" "public/api/${i_basename%.js}.txt"
done

…或作为一个:

for i in src/component/fb/*.js; do i_basename=${i##*/}; mv -- "$i" "public/api/${i_basename%.js}.txt"; done

编辑如果你使用zsh,你可以说:

for i in src/component/fb/*.js; do mv "$i" "public/api/$(basename $i:r.txt)"; done

@CharlesDuffy的答案更好。正如他在下面评论的那样,basename是一个命令(而${i##*/}是通过模式匹配的内置替换)。

相关内容

  • 没有找到相关文章

最新更新