首页 > 解决方案 > 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 会抛出一个错误,指出.无法移动或重命名。我做错了什么?

标签: bash

解决方案


推荐阅读