এই বিষয়টিতে আমার গ্রহণযোগ্যতা এখানে। এখানে উল্লিখিত পূর্ববর্তী লিপিগুলি থেকে প্রচুর ভাল ধারণা এসেছে।
এটি ওএস এক্সের জন্য একটি বাশ স্ক্রিপ্ট । এটি একই ফাইল ফাইল এবং dng+jpg
এক্সটেনশনগুলির সাথে বিদ্যমান এমন ফাইলগুলির সন্ধান করে । যদি jpg
কোনও ঠিক একই নামের সাথে পাওয়া যায় dng
, তবে সেই -e
ফাইলটির নাম প্রদর্শিত হবে ( ), ফাইল সরানো ( -m
) বা মুছে ফেলা ( -d
)।
এটি সাবফোল্ডারগুলির মধ্য দিয়ে যাবে, যাতে আপনি এটি আপনার পুরো ক্যাটালগ বা এর কিছু অংশের জন্য ব্যবহার করতে পারেন।
অন্যান্য কাঁচা ফাইল এক্সটেনশনের জন্য *.dng
আপনার পছন্দসই এক্সটেনশানটির সাথে স্ক্রিপ্টে কেবলমাত্র বিকল্প তৈরি করুন ।
সতর্কতা: আপনার কাছে একই নামের সাথে দুটি ভিন্ন চিত্র থাকতে পারে, তবে আলাদা এক্সটেনশন। যারা এই লিপির অনিবার্য হতাহত।
স্ক্রিপ্টটি কীভাবে ব্যবহার করবেন তা এখানে:
Usage: dng-jpg.sh [-m <path>] [-d <path>] [-e <path>] [-h]
-m: for move (moves files to <path>/duplicates)
-d: for delete (deletes duplicate files)
-e: for echo (lists duplicate files)
-h: for help
বেসিক ব্যবহার এইভাবে কাজ করবে:
$ ./dng-jpg.sh -e /Volumes/photo/DNG/2015
এটি ফাইলের সমস্ত ফাইলের নাম প্রতিধ্বনিত jpg
করে যা উভয় থাকার মানদণ্ডের সাথে মেলে dng
এবং jpg
একই নামের সাথে ফাইল করে।
ফলাফলটি এরকম কিছু দেখাবে:
Echo selected with path: /Volumes/photo/DNG/2015
/Volumes/photo/DNG/2015/03/18/2015-03-18_02-11-17.jpg
/Volumes/photo/DNG/2015/06/01/2015-06-01_05-10-50.jpg
/Volumes/photo/DNG/2015/06/01/2015-06-01_05-10-56.jpg
/Volumes/photo/DNG/2015/06/01/2015-06-01_05-11-39.jpg
/Volumes/photo/DNG/2015/06/01/2015-06-01_05-11-54.jpg
/Volumes/photo/DNG/2015/06/01/2015-06-01_05-12-26.jpg
/Volumes/photo/DNG/2015/06/01/2015-06-01_05-12-43.jpg
/Volumes/photo/DNG/2015/06/01/2015-06-01_05-13-21.jpg
/Volumes/photo/DNG/2015/06/01/2015-06-01_05-13-56.jpg
9 files found.
এখন যদি আমি ফাইল আমি শুধু সুইচ করবে মুছে ফেলতে চান -e
করতে -d
:
$ ./dng-jpg.sh -d /Volumes/photo/DNG/2015
বা যদি আমি ফাইলগুলি / নকলগুলিতে সরাতে চাই তবে আমি এটির সাথে সম্পাদন করব -m
।
$ ./dng-jpg.sh -m /Volumes/photo/DNG/2015
এখন সদৃশ jpg
ফাইলগুলি হবে/Volumes/photo/DNG/2015/duplicates
স্ক্রিপ্টটি এখানে: dng-jpg.sh
#!/bin/bash
# Init variables
isSetM=0
isSetD=0
isSetE=0
isSetCount=0
counter=0
#Display usage info
usage() {
cat <<EOF
Usage: dng-jpg.sh [-m <path>] [-d <path>] [-e <path>] [-h]
-m: for move (moves files to <path>/duplicates)
-d: for delete (deletes duplicate files)
-e: for echo (lists duplicate files)
-h: for help
EOF
exit 1
}
#Check for parameters
while getopts ":m:d:e:h" opt; do
case ${opt} in
m)
isSetM=1
let isSetCount="$isSetCount+1"
arg=${OPTARG}
echo "Move selected with path:" $arg
;;
d)
isSetD=1
let isSetCount="$isSetCount+1"
arg=${OPTARG}
echo "Delete selected with path:" $arg
;;
e)
isSetE=1
let isSetCount="$isSetCount+1"
arg=${OPTARG}
echo "Echo selected with path:" $arg
;;
h)
let isSetCount="$isSetCount+1"
usage
;;
\?)
echo "Invalid option: -$OPTARG" >&2
usage
;;
:)
echo "Option -$OPTARG requires a directory argument." >&2
usage
;;
*)
usage
;;
esac
done
# If no parameters, show usage help and exit
if test -z "$1"; then
usage
fi
# If multiple parameters (not counting -a), show usage help and exit
if (($isSetCount > 1)); then
usage
fi
#Verify directory
if [ ! -d "$arg" ]; then
echo "$arg is not a path to a directory." >&2
usage
fi
#Now set it as a basedir
BASEDIR=$arg
WASTEDIR="$BASEDIR/duplicates/"
if (( $isSetM==1 )); then
mkdir $WASTEDIR
fi
for filename in $(find $BASEDIR -name '*.dng' -exec echo {} \; | sort); do
prefix=${filename%.dng}
if [ -e "$prefix.jpg" ]; then
let counter="$counter+1"
if (( $isSetE==1 )); then
echo "$prefix.jpg"
fi
if (( $isSetM==1 )); then
mv $prefix.jpg $WASTEDIR
fi
if (( $isSetD==1 )); then
rm $prefix.jpg
fi
fi
done
echo "$counter files found."