Initial commit
This commit is contained in:
Executable
+53
@@ -0,0 +1,53 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# rar2zip conversion script
|
||||
# Based on: https://shkspr.mobi/blog/2016/12/converting-rar-to-zip-in-linux/
|
||||
#
|
||||
# Usage: rar2zip.sh file [file ...]
|
||||
|
||||
echo "Converting RARs to ZIPs"
|
||||
|
||||
# Use RAM disk for temporary files.
|
||||
WORKDIR="/dev/shm/"
|
||||
|
||||
for INFILE in "$@"; do
|
||||
# Absolute path to old file
|
||||
OLDFILE=`realpath "${INFILE}"`
|
||||
|
||||
# Get the file name without the extension
|
||||
BASENAME=`basename "${OLDFILE%.*}"`
|
||||
|
||||
# Path for the file. The ".zip" file will be written there.
|
||||
DIRNAME=`dirname "$OLDFILE"`
|
||||
|
||||
# Name of the .zip file
|
||||
NEWNAME="${DIRNAME}/$BASENAME.zip"
|
||||
|
||||
if [ ! -e "${NEWNAME}" ]; then
|
||||
# Set name for the temp dir. This directory will be created under WORKDIR
|
||||
TEMPDIR=`mktemp -p "$WORKDIR" -d`
|
||||
|
||||
# Create a temporary folder for unRARed files
|
||||
echo "Extracting $OLDFILE"
|
||||
|
||||
rar x "$OLDFILE" "${TEMPDIR}/"
|
||||
|
||||
# Zip the files with maximum compression
|
||||
7z a -tzip -mx=9 "$NEWNAME" "${TEMPDIR}/*"
|
||||
# Alternative. MUCH SLOWER, but better compression
|
||||
# 7z a -mm=Deflate -mfb=258 -mpass=15 -r "$NEWNAME" *
|
||||
|
||||
# Preserve file modification time
|
||||
touch -r "$OLDFILE" "$NEWNAME"
|
||||
|
||||
# Delete the temporary directory
|
||||
rm -r "$TEMPDIR"
|
||||
|
||||
# OPTIONAL. Safe-remove the old file
|
||||
#gio trash "$OLDFILE"
|
||||
else
|
||||
echo "${NEWNAME}: File exists!"
|
||||
fi
|
||||
done
|
||||
|
||||
echo "Conversion Done"
|
||||
Reference in New Issue
Block a user