linux shell递归修改文件夹内的所有文件名

文件名为:build.sh

#!/bin/bash

echo "###################################################################"
echo "# Preparing to Recursively modify files in the folder"
echo "###################################################################"
echo "$(tput sgr0)"
function readFile() {
    echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!DIR $1"
    for dirlist in $(ls)
    do
        if test -d ${dirlist}
        then
            cd ${dirlist}
            readFile ${dirlist}
            cd ..
        else
            echo "$dirlist"
            newfile=`echo $dirlist | sed 's/_//g'`
            mv $dirlist $newfile
        fi
    done
}

function setDir() {
    if test -d $1
    then
        cd $1
        readFile
        cd ..
    else
        cd $(dirname $1)
        local name=$(basename $1)
        newfile=`echo $name | sed 's/vvv/_/g'`
        mv $name $newfile
    fi
}

local param=$1
if [ -z "$1" ]
then
    param="./"
    echo "empty string: $param"
else
    param=$1
fi
if test -d $param
then
    setDir $param
elif test -f $param
then
    setDir $param
    exit 1
else
    echo "Neither folder nor file!!!"
    exit 1
fi
然后在终端执行

./build.sh

或者

./build.sh ./

函数就会把build.sh所在的文件夹下的所有文件夹和文件列出来。

然后看sed 's/_//g'这句代码,意思是找出文件名里的"_"去掉。


Linux下,可以使用以下几种方法来获取文件夹下的文件名: 1. 使用ls命令:可以使用ls命令来获取指定文件夹下的文件名。例如,要获取当前目录下的所有文件名,可以执行命令:`ls`。要获取指定目录(如/home/user/Documents)下的所有文件名,可以执行命令:`ls /home/user/Documents`。使用ls命令还可以使用相关选项,如`ls -l`可以显示文件的详细信息,`ls -a`可以显示包括隐藏文件在内的所有文件。 2. 使用find命令:可以使用find命令来递归地查找指定目录下的文件,并获取文件名。例如,要获取当前目录下的所有文件名,可以执行命令:`find .`。要获取指定目录下的所有文件名,可以执行命令:`find /home/user/Documents`。 3. 使用ls命令配合管道和其他命令:可以使用ls命令结合管道和其他命令来进一步处理获取的文件名。例如,要获取当前目录下的所有文件名,并将其存储到一个文件中,可以执行命令:`ls > filenames.txt`。要获取指定目录下的所有文件名,并将包含特定字符串的文件名输出到屏幕上,可以执行命令:`ls /home/user/Documents | grep "string"`。 4. 使用shell脚本编程:还可以使用shell脚本编程来获取文件夹下的文件名。可以使用for循环结合通配符来遍历文件夹,并获取文件名。例如,以下是一个获取指定目录文件名的示例脚本: ```shell #!/bin/bash directory="/home/user/Documents" for file in $directory/*; do echo $(basename "$file") done ``` 以上是几种常见的方法,可以根据具体需求选择合适的方法来获取文件夹下的文件名
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值