linux 批量建数字目录,关于linux:Bash技巧可以批量在多个目录名前面加上数字的Shell脚本...
时间: 2024-03-19 15:44:33 浏览: 11
好的,下面是一段 Bash 脚本,可以批量在多个目录名前加上数字:
```bash
#!/bin/bash
# 设定数字的起始值
num=1
# 遍历当前目录下所有的目录
for dir in */
do
# 如果目录名不是以数字开头的,则重命名为数字+原目录名
if [[ ! $dir =~ ^[0-9] ]]
then
mv "$dir" "$(printf "%02d" $num)_$dir"
let "num+=1"
fi
done
```
这个脚本会遍历当前目录下所有的目录,并将不是以数字开头的目录名重命名为数字+原目录名的形式,数字的起始值可以在脚本中自行设定。注意,这个脚本并不会影响当前目录下的文件,只会重命名目录。
相关问题
bat复制文件到指定目录同名_Bash技巧:介绍一个批量复制文件到指定目录的Shell脚本
可以使用以下的Shell脚本来批量复制文件到指定目录:
```bash
#!/bin/bash
# 使用方法:将脚本和需要复制的文件放在同一个目录下,执行脚本,输入目标目录即可。
read -p "请输入目标目录: " target_dir
if [ ! -d $target_dir ]; then
echo "目标目录不存在!"
exit
fi
for file in *; do
if [ -f $file ]; then
cp -i $file $target_dir/$file
fi
done
echo "复制完成!"
```
解释一下这段脚本的作用:
1. 通过 `read` 命令获取用户输入的目标目录。
2. 使用 `if` 判断目标目录是否存在,如果不存在则输出提示信息并退出脚本。
3. 使用 `for` 循环遍历当前目录下的所有文件。
4. 对于每一个文件,使用 `if` 判断它是否是一个普通文件,如果是,则使用 `cp` 命令将它复制到目标目录下。
5. 复制完成后,输出提示信息。
需要注意的是,上述脚本中使用了 `-i` 参数,表示在复制文件时需要进行交互确认。如果你希望自动覆盖目标目录中已存在的同名文件,可以将 `-i` 参数去掉。
linux中写一个shell脚本,在当前目录下的文件中查找127.0字符串
可以尝试使用以下的脚本来查找当前目录下的文件中是否包含"127.0"字符串:
```
#!/bin/bash
for file in ./*
do
if [ -f "$file" ] && [ -r "$file" ] && [ -s "$file" ]
then
if grep -q "127.0" "$file"
then
echo "Found 127.0 in $file"
fi
fi
done
```
该脚本会遍历当前目录下的所有文件,并使用 `grep` 命令来查找文件中是否包含 "127.0" 字符串。如果找到了,则会输出该文件名。
注意:该脚本只是一个简单的示例,可能无法处理所有情况,需要根据实际情况进行修改。