shell脚本修改文件名
时间: 2023-04-24 11:01:10 浏览: 85
修改文件名可以使用以下 shell 脚本实现:
```
#!/bin/bash
# 获取文件目录下的文件列表
files=`ls`
# 循环修改文件名
for file in $files
do
# 获取文件后缀
suffix=${file##*.}
# 修改文件名
mv "${file}" "${file%.*}_new.${suffix}"
done
```
使用该脚本前,需要修改文件的目录并使用 "chmod +x filename.sh" 命令给文件赋予执行权限。然后可以在命令行中执行该文件来修改文件名。
相关问题
shell脚本递归文件名
在Shell脚本中,可以使用递归的方式获取文件名。下面是一个示例代码,用于递归获取指定目录下的所有文件名:
```shell
#!/bin/bash
function recursive_files() {
local dir=$1
for file in "$dir"/*; do
if [ -f "$file" ]; then
echo "$file"
elif [ -d "$file" ]; then
recursive_files "$file"
fi
done
}
# 调用递归函数,传入目标目录作为参数
recursive_files "/path/to/directory"
```
上述代码定义了一个名为`recursive_files`的递归函数,该函数接受一个目录作为参数。在函数内部,使用`for`循环遍历目录下的所有文件和子目录。如果是文件,则直接输出文件名;如果是目录,则递归调用`recursive_files`函数。
你可以将`/path/to/directory`替换为你想要获取文件名的目录路径。运行脚本后,它将递归地输出指定目录下的所有文件名。
shell脚本查找文件名
您好!要在Shell脚本中查找文件名,您可以使用`find`命令。`find`命令可以递归地在指定路径下查找文件,并且可以根据文件名、类型、大小等条件进行筛选。
下面是一个示例的Shell脚本,它使用`find`命令查找指定路径下以".txt"结尾的文件名:
```bash
#!/bin/bash
path="/path/to/search" # 要查找的路径
pattern="*.txt" # 要匹配的文件名模式
echo "查找路径: $path"
echo "匹配模式: $pattern"
# 使用find命令查找文件名
find "$path" -type f -name "$pattern"
```
您可以将上述代码保存为一个.sh文件,然后在命令行中执行该脚本,即可查找指定路径下的文件名。请记得将`/path/to/search`替换为您要查找的实际路径,`*.txt`替换为您要匹配的实际文件名模式。
希望能对您有所帮助!如果您有任何其他问题,请随时提问。