Auto-update: Sat Mar 15 23:31:59 PDT 2025
This commit is contained in:
parent
4e9fcc3a56
commit
e26d6f8a8c
1 changed files with 80 additions and 0 deletions
80
mime
Executable file
80
mime
Executable file
|
@ -0,0 +1,80 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# This script processes all files in the current folder:
|
||||||
|
# 1. Removes leading '-' characters from filenames.
|
||||||
|
# 2. Uses the file command to determine the MIME type.
|
||||||
|
# 3. Renames the file to add the correct file extension.
|
||||||
|
|
||||||
|
# Function to map MIME type to a file extension
|
||||||
|
get_extension() {
|
||||||
|
local mimetype="$1"
|
||||||
|
case "$mimetype" in
|
||||||
|
image/jpeg)
|
||||||
|
echo "jpg"
|
||||||
|
;;
|
||||||
|
image/png)
|
||||||
|
echo "png"
|
||||||
|
;;
|
||||||
|
image/gif)
|
||||||
|
echo "gif"
|
||||||
|
;;
|
||||||
|
video/mp4)
|
||||||
|
echo "mp4"
|
||||||
|
;;
|
||||||
|
video/x-matroska)
|
||||||
|
echo "mkv"
|
||||||
|
;;
|
||||||
|
application/pdf)
|
||||||
|
echo "pdf"
|
||||||
|
;;
|
||||||
|
text/plain)
|
||||||
|
echo "txt"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo ""
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# Iterate over files in current directory
|
||||||
|
for file in *; do
|
||||||
|
# Skip if not a regular file
|
||||||
|
if [ ! -f "$file" ]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove any leading dashes from the filename
|
||||||
|
newname=$(echo "$file" | sed 's/^-*//')
|
||||||
|
if [ "$newname" != "$file" ]; then
|
||||||
|
if [ -e "$newname" ]; then
|
||||||
|
echo "File $newname already exists. Skipping rename of $file."
|
||||||
|
file="$newname" # continue processing the original file
|
||||||
|
else
|
||||||
|
mv -- "$file" "$newname"
|
||||||
|
echo "Renamed $file to $newname"
|
||||||
|
file="$newname"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Determine the MIME type; use '--' to avoid interpreting filenames as options
|
||||||
|
mimetype=$(file --mime-type -b -- "$file")
|
||||||
|
ext=$(get_extension "$mimetype")
|
||||||
|
if [ -z "$ext" ]; then
|
||||||
|
echo "Unknown MIME type for $file: $mimetype. Skipping extension addition."
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If the file doesn't already end with the correct extension, rename it
|
||||||
|
if [[ "$file" != *.$ext ]]; then
|
||||||
|
newfile="${file}.${ext}"
|
||||||
|
# If newfile already exists, avoid overwriting
|
||||||
|
if [ -e "$newfile" ]; then
|
||||||
|
echo "Target file $newfile already exists. Skipping renaming of $file."
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
mv -- "$file" "$newfile"
|
||||||
|
echo "Renamed $file to $newfile (MIME type: $mimetype)"
|
||||||
|
else
|
||||||
|
echo "$file already has the correct extension ($ext)"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
Loading…
Add table
Reference in a new issue