编写shell脚本,将当前目录中的所有“.sh”结尾的文件在指定目录 中进行如下处理:1
时间: 2024-03-27 17:36:03 浏览: 144
好的,以下是符合您要求的shell脚本:
```bash
#!/bin/bash
# 定义要处理的目标目录
target_dir=/path/to/target/directory
# 判断目标目录是否存在,如果不存在则创建
if [ ! -d $target_dir ]; then
mkdir $target_dir
fi
# 遍历当前目录中所有以.sh结尾的文件
for file in *.sh; do
# 判断文件是否存在并且可读
if [ -r $file ]; then
# 处理文件名,去掉.sh后缀
filename=$(basename -- "$file")
filename="${filename%.sh}"
# 将文件移动到指定目录,并改名为原文件名后加上"_processed"
mv "$file" "$target_dir/$filename"_processed.sh
fi
done
```
解释一下这个脚本的逻辑:
1. 首先定义要处理的目标目录,这里指定为`/path/to/target/directory`,您可以根据实际情况修改为您需要的目录;
2. 判断目标目录是否存在,如果不存在则创建;
3. 遍历当前目录中所有以.sh结尾的文件,使用`for file in *.sh`语句;
4. 对每个文件进行判断,如果文件存在并且可读,则进行处理,否则跳过;
5. 处理文件名,去掉.sh后缀,使用`basename`命令;
6. 将文件移动到指定目录,并改名为原文件名后加上"_processed",使用`mv`命令。
希望这个shell脚本能够满足您的需求。
阅读全文