bash - BASH 多目录重命名失败
问题描述
我想编写一个 bash 脚本,通过在名称末尾添加一个字符串来重命名文件、目录和软链接。我写了这段代码:
#!/bin/bash
if [ -d "$1" ]
then
cd $1
find -type f -exec mv -v {} {}etc \;
find -type d -exec mv -v {} {}dir \;
find -type l -exec mv -v {} {}softlink \;
else
echo "ERROR"
fi
问题是带有 -d 参数的 find 不仅要重命名$1
参数中的目录,还要重命名目录.
,此时 bash 会抛出一个错误,指出.
无法移动或重命名。我做错了什么?
解决方案
推荐阅读
- mongodb - mongo查询中$lookup和$match后需要获取匹配记录
- python - python beautifulsoup在div标签之间没有检索到数据
- javascript - 在 vanilla JS 中获取组件的反应状态
- jquery - 小部件价格过滤器不适用于 jquery
- java - 使用 int 输入获取枚举常量作为输出
- laravel - 使用 Laravel 封装类到另一个
- r - 数据框字符串拆分为列而不是行
- ruby-on-rails - 具有 SEO 要求的 Rails 本地化
- sql - 如果我有一个简单的一对多关系,我如何构建那个特定的 SQL 语句
- excel - VBA:文件日期时间、夏令时和 SOX 合规性