ডিরেক্টরিতে থাকা সামগ্রীর একাধিক উপ ডিরেক্টরিতে বিভক্ত করুন


10

আমার একটি ডিরেক্টরি রয়েছে যাতে হাজারেরও বেশি চিত্র রয়েছে। আমি ফাইলগুলিকে একাধিক সাব ডিরেক্টরিতে বিভক্ত করতে চাই, প্রতিটিতে 100 টি ফাইল রয়েছে। আমি এটা কিভাবে করবো?


উত্তর:


23

নিম্নলিখিত আমার জন্য ভাল কাজ করেছে। টার্মিনালে ডিরেক্টরিটি খুলুন, এবং কেবল নিম্নলিখিত স্ক্রিপ্টটি অনুলিপি করুন এবং আটকান, এন্টার টিপুন। উপ ডিরেক্টরিগুলি dir_001, dir_002 এবং আরও অনেক কিছু থাকার সাথে সাথে তৈরি করা হবে।

i=0; 
for f in *; 
do 
    d=dir_$(printf %03d $((i/100+1))); 
    mkdir -p $d; 
    mv "$f" $d; 
    let i++; 
done

এটি নিম্ন মানের হিসাবে পতাকাঙ্কিত করা হয়েছিল। যেহেতু আপনি ওপি, আপনি কি করেছেন তার একটি ব্যাখ্যা যুক্ত করতে পারেন?
মুরু

1
সম্পন্ন. একটি ব্যাখ্যা যোগ করেছেন।
আনিজ

1

রেঞ্জ এবং অফসেট সহ অ্যারে ব্যবহার করে স্থির সংখ্যক ফাইল সরান।

#!/bin/bash

shopt -s nullglob

a=(./src/*)
for ((i=0; i<${#a[@]}; i+=100)); do
    printf -v b ./img_%03d $((++n))
    mkdir -p $b && mv -t $b "${a[@]:$i:100}"
done

0

এটি আপনাকে কতগুলি ডিরেক্টরি চান তা এবং উপ-ডিরেক্টরি উপসর্গ সম্পর্কে আপনাকে জিজ্ঞাসা করবে। Ls কমান্ডটি আপনার কতগুলি ফাইল পেয়েছে তার কেবলমাত্র একটি অনুস্মারক।

ls -1 | wc -l

read -p 'How Many Directories: ' F;
read -p 'Sub-Directories Prefix: ' S;

PARRENT=${PWD}
# cd $PARRENT 
n=0
for i in *
do
  if [ $((n+=1)) -gt $F ]; then
    n=1
  fi
  todir=$PARRENT/"$S"_$n
  [ -d "$todir" ] || mkdir "$todir" 
  mv "$i" "$todir" 
done

উত্স: https://www.unix.com/shell-programming-and-scriptting/248539-split-folder-huge-number-files-n-folders.html


আমি আশঙ্কা করছি যদি বর্তমান ডিরেক্টরিটিতে পথের জায়গা থাকে তবে এটি ভুল হতে পারে।
ভল বলেছেন পুনরায় ইনস্টল মনিকা 18
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.