u
This commit is contained in:
@@ -19,7 +19,3 @@ unset USERNAME
|
||||
################################################################################
|
||||
# End Of File: "~/.bash_profile"
|
||||
################################################################################
|
||||
|
||||
# Added by OrbStack: command-line tools and integration
|
||||
# This won't be added again if you remove it.
|
||||
source ~/.orbstack/shell/init.bash 2>/dev/null || :
|
||||
|
||||
@@ -133,7 +133,7 @@ fi
|
||||
MYIPPUB=$(curl -s ifconfig.me)
|
||||
|
||||
if [ "$(uname)" = "Darwin" ]; then
|
||||
PSTYLE=04
|
||||
PSTYLE=07
|
||||
PTYPE=3
|
||||
elif [ "$(whoami)" = "root" ]; then
|
||||
PSTYLE=07
|
||||
@@ -186,13 +186,19 @@ fi
|
||||
# eval "$(fnm env --use-on-cd)"
|
||||
# fi
|
||||
|
||||
# acme.sh settings
|
||||
# acme.sh
|
||||
if [ -f $HOME/.acme.sh/acme.sh.env ]
|
||||
then
|
||||
. "$HOME/.acme.sh/acme.sh.env"
|
||||
alias acme=$HOME/.acme.sh/acme.sh
|
||||
fi
|
||||
|
||||
# Added by OrbStack: command-line tools and integration
|
||||
if [ "$(uname)" = "Darwin" ] && [ -f $HOME/.orbstack/shell/init.bash ]
|
||||
then
|
||||
source ~/.orbstack/shell/init.bash 2>/dev/null || :
|
||||
fi
|
||||
|
||||
# let MacOS uses the same variable so that vscode-sshfs can use "$USERPROFILE/.ssh/id_rsa" uniformly.
|
||||
export USERPROFILE=$HOME
|
||||
|
||||
|
||||
58
photo_rename_folders.sh
Normal file
58
photo_rename_folders.sh
Normal file
@@ -0,0 +1,58 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 指定目录
|
||||
if [ "$1" ]; then
|
||||
base_dir=$1
|
||||
else
|
||||
read -p "Please enter [root directory] to rename 1st level subfolders: " base_dir
|
||||
fi
|
||||
if [[ -d "$base_dir" ]]; then
|
||||
base_dir=$(realpath $base_dir)
|
||||
echo Searching in $base_dir;
|
||||
else
|
||||
echo not a folder!
|
||||
exit 0
|
||||
fi;
|
||||
|
||||
# Prompt user for input
|
||||
read -p "Please enter [prod] to rename, or [anything else] to dry run: " user_input
|
||||
|
||||
# 遍历所有目录
|
||||
for dir in "$base_dir"/*/; do
|
||||
# 提取目录名称,去掉末尾的斜杠
|
||||
dir_name=$(basename "$dir")
|
||||
|
||||
# 调试输出:检查目录名称
|
||||
echo "Processing: $dir_name"
|
||||
|
||||
# 使用正则表达式提取前缀(可选)、年份、月份和日期
|
||||
if [[ $dir_name =~ ^([^,]*),?\ ([0-9]{4})年([0-9]{1,2})月([0-9]{1,2})日$ ]]; then
|
||||
# 有前缀的情况
|
||||
prefix="${BASH_REMATCH[1]}"
|
||||
year="${BASH_REMATCH[2]}"
|
||||
month=$(printf "%02d" "${BASH_REMATCH[3]}")
|
||||
day=$(printf "%02d" "${BASH_REMATCH[4]}")
|
||||
|
||||
elif [[ $dir_name =~ ^([0-9]{4})年([0-9]{1,2})月([0-9]{1,2})日$ ]]; then
|
||||
# 没有前缀的情况
|
||||
prefix=""
|
||||
year="${BASH_REMATCH[1]}"
|
||||
month=$(printf "%02d" "${BASH_REMATCH[2]}")
|
||||
day=$(printf "%02d" "${BASH_REMATCH[3]}")
|
||||
|
||||
else
|
||||
echo "Skipping: $dir_name (not matching expected format)"
|
||||
continue
|
||||
fi
|
||||
|
||||
# 创建新的目录名称
|
||||
new_name="${year}${month}${day}"
|
||||
|
||||
if [[ -n "$prefix" ]]; then
|
||||
new_name="${new_name}_${prefix// /_}" # 替换空格为下划线
|
||||
fi
|
||||
|
||||
# 重命名目录
|
||||
if [[ "$user_input" == "prod" ]]; then mv "$dir" "$base_dir/$new_name"; fi;
|
||||
echo "Renamed: $dir_name -> $new_name"
|
||||
done
|
||||
71
photo_rename_images.sh
Normal file
71
photo_rename_images.sh
Normal file
@@ -0,0 +1,71 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 设置要处理的目录
|
||||
if [ "$1" ]; then
|
||||
base_dir=$1
|
||||
else
|
||||
read -p "Please enter [root directory] to rename images recursively: " target_directory
|
||||
fi
|
||||
if [[ -d "$target_directory" ]]; then
|
||||
echo Searching in $(realpath $target_directory);
|
||||
else
|
||||
echo $target_directory is not a folder!
|
||||
exit 0
|
||||
fi;
|
||||
|
||||
# Prompt user for input
|
||||
read -p "Please enter [prod] to rename, or [anything else] to dry run: " user_input
|
||||
|
||||
|
||||
# 查找并遍历所有文件
|
||||
find "$target_directory" -type f | while read -r file; do
|
||||
# 获取文件的原名和扩展名
|
||||
dir_name=$(dirname "$file")
|
||||
base_name=$(basename "$file")
|
||||
extension="${base_name##*.}"
|
||||
|
||||
if [[ "$extension" = "7z" ]] || [[ "$extension" = "DS_Store" ]] || [[ "$extension" = "aae" ]] || [[ "$base_name" == *"unkn#own"* ]]; then
|
||||
echo === Bypassing $base_name
|
||||
elif [[ "$base_name" =~ ^\[?[0-9]{8}[-_][0-9]{6}\]? ]]; then
|
||||
|
||||
#echo === Formatting $base_name
|
||||
|
||||
# 删除文件名中的 [ 和 ],并将日期时间后的 - 或空格 替换为 #
|
||||
new_name=$(echo "$base_name" | sed -E 's/\[?([0-9]{8})[-_]([0-9]{6})\]?[- ]/\1#\2_/g; s/\[?([0-9]{8})[-_]([0-9]{6})\]?/\1#\2/g; s/\[|\]//g')
|
||||
|
||||
# 如果重命名后的文件名与原文件名不同,则进行重命名
|
||||
if [[ "$base_name" != "$new_name" ]]; then
|
||||
if [[ "$user_input" == "prod" ]]; then mv "$file" "$dir_name/$new_name"; fi;
|
||||
echo "$base_name -> $new_name"
|
||||
fi
|
||||
|
||||
elif [[ ! "$base_name" =~ ^[0-9]{8}#[0-9]{6} ]]; then
|
||||
|
||||
#echo === Add datetime $base_name
|
||||
|
||||
# 获取文件的拍摄日期,假设日期以EXIF元数据存储
|
||||
# 需要安装 exiftool
|
||||
date_taken=$(exiftool -ExtractEmbedded -d "%Y%m%d#%H%M%S" -DateTimeOriginal -CreationDate -s -s -s "$file")
|
||||
|
||||
# 检查日期是否为空和文件名格式
|
||||
if [ -n "$date_taken" ]; then
|
||||
# 生成新的文件名
|
||||
new_name="${date_taken}_${base_name}"
|
||||
|
||||
# 重命名文件
|
||||
if [[ "$user_input" == "prod" ]]; then mv "$file" "$dir_name/$new_name"; fi;
|
||||
echo "$base_name -> $new_name"
|
||||
else
|
||||
new_name="unkn#own_${base_name}"
|
||||
|
||||
# 重命名文件
|
||||
if [[ "$user_input" == "prod" ]]; then mv "$file" "$dir_name/$new_name"; fi;
|
||||
echo "$base_name -> $new_name"
|
||||
fi
|
||||
|
||||
else
|
||||
|
||||
echo === Unknown $base_name
|
||||
|
||||
fi
|
||||
done
|
||||
Reference in New Issue
Block a user