1.自动备份文件或目录:
#!/bin/bash
# 设置备份目录
backup_dir="/path/to/backup/dir"
# 设置要备份的文件或目录
files_to_backup="/path/to/files /path/to/dir"
# 创建一个日期时间戳
timestamp=$(date +%F_%T)
# 备份文件
tar -czvf "${backup_dir}/backup_${timestamp}.tar.gz" ${files_to_backup}2.批量重命名文件:
#!/bin/bash
# 设置文件扩展名
extension=".txt"
# 遍历当前目录下的所有文件
for file in *${extension}
do
  # 获取文件名(不包括扩展名)
  filename=$(basename "${file}" "${extension}")
  # 重命名文件
  mv "${file}" "${filename}_new${extension}"
done3.批量删除文件
#!/bin/bash
# 设置文件扩展名
extension=".tmp"
# 遍历当前目录下的所有文件
for file in *${extension}
do
  # 删除文件
  rm "${file}"
done4.查找并删除指定名称的文件:
#!/bin/bash
# 设置文件名
filename="example.txt"
# 查找并删除文件
find . -name "${filename}" -delete5.查找并替换文件内容:
#!/bin/bash
# 设置要查找的字符串
search_string="old_string"
# 设置要替换成的字符串
replace_string="new_string"
# 查找并替换文件内容
find . -type f -exec sed -i "s/${search_string}/${replace_string}/g" {} \;6.批量创建文件:
#!/bin/bash
# 设置文件名前缀
prefix="file"
# 设置文件数量
num_files=10
# 循环创建文件
for i in $(seq 1 ${num_files})
do
  touch "${prefix}${i}.txt"
done7.创建文件夹并移动文件:
#!/bin/bash
# 设置文件夹名称
dir_name="new_dir"
# 设置要移动的文件
files_to_move="file1.txt file2.txt"
# 创建文件夹并移动文件
mkdir ${dir_name} && mv ${files_to_move} ${dir_name}8.在文件夹中查找文件:
#!/bin/bash
# 设置文件夹路径
dir_path="/path/to/dir"
# 设置文件名
filename="example.txt"
# 在文件夹中查找文件
find ${dir_path} -name "${filename}"9.计算文件夹中文件数量:
#!/bin/bash
# 设置文件夹路径
dir_path="/path/to/dir"
# 计算文件数量
num_files=$(find ${dir_path} -type f | wc -l)
echo "Number of files in ${dir_path}: ${num_files}"10.计算文件夹大小:
#!/bin/bash
# 设置文件夹路径
dir_path="/path/to/dir"
# 计算文件夹大小
dir_size=$(du -sh ${dir_path})
echo "Size of ${dir_path}: ${dir_size}"11.定时执行命令:
#!/bin/bash
# 设置命令
command="echo hello"
# 设置执行周期(以秒为单位)
period=10
# 定时执行命令
while true
do
  eval ${command}
  sleep ${period}
done12.发送邮件:
#!/bin/bash
# 设置收件人邮箱
to="recipient@example.com"
# 设置发件人邮箱
from="sender@example.com"
# 设置邮件主题
subject="Test Email"
# 设置邮件内容
body="This is a test email."
# 发送邮件
echo "${body}" | mail -s "${subject}" -r "${from}" "${to}"13.批量解压缩文件:
#!/bin/bash
# 设置文件扩展名
extension=".tar.gz"
# 遍历当前目录下的所有文件
for file in *${extension}
do
  # 解压缩文件
  tar -xvzf ${file}
done14.在文件夹中查找并删除文件:
#!/bin/bash
# 设置文件夹路径
dir_path="/path/to/dir"
# 设置要删除的文件扩展名
extension=".tmp"
# 在文件夹中查找并删除文件
find ${dir_path} -name "*${extension}" -delete15.批量重命名文件:
#!/bin/bash
# 设置文件扩展名
extension=".old"
# 设置新文件扩展名
new_extension=".new"
# 遍历当前目录下的所有文件
for file in *${extension}
do
  # 获取文件名(不包含扩展名)
  filename=$(basename "${file}" "${extension}")
  # 重命名文件
  mv "${file}" "${filename}${new_extension}"
done16.对文件夹中的文件按修改时间排序:
#!/bin/bash
# 设置文件夹路径
dir_path="/path/to/dir"
# 对文件夹中的文件按修改时间排序
find ${dir_path} -type f -printf "%T@ %p\n" | sort -n17.批量转换文件格式:
#!/bin/bash
# 设置文件扩展名
extension=".txt"
# 设置新文件扩展名
new_extension=".md"
# 遍历当前目录下的所有文件
for file in *${extension}
do
  # 转换文件格
pandoc -s "${file}" -o "${file/${extension}/${new_extension}}"
done注意:需要先安装Pandoc。
18.删除文件夹中的空文件夹:
#!/bin/bash
# 设置文件夹路径
dir_path="/path/to/dir"
# 删除文件夹中的空文件夹
find ${dir_path} -type d -empty -delete19.删除文件夹中的空文件:
#!/bin/bash
# 设置文件夹路径
dir_path="/path/to/dir"
# 删除文件夹中的空文件
find ${dir_path} -type f -empty -delete20.批量更改文件权限:
#!/bin/bash
# 设置文件夹路径
dir_path="/path/to/dir"
# 设置文件权限(以八进制表示)
permission="644"
# 批量更改文件权限
find ${dir_path} -type f -exec chmod ${permission} {} \;希望这些 Shell 脚本实例能对你有所帮助。
「感觉有帮助?一键投喂 牛奶/咖啡/冰阔乐!」
(๑>ڡ<)☆哇~太棒了!
使用微信扫描二维码完成支付
 
			 VASPKIT
VASPKIT