এমভি দিয়ে ফোল্ডারগুলি একত্রিত করছেন?


149

যদি আমি mv"ফোল্ডার" নামক একটি ফোল্ডারটি এমন একটি ডিরেক্টরিতে স্থানান্তর করতে ব্যবহার করি যা ইতিমধ্যে "ফোল্ডার" রয়েছে তারা কি একীভূত হবে বা এটি প্রতিস্থাপন করা হবে?

উত্তর:


120

mvডিরেক্টরিগুলি মার্জ বা ওভাররাইট করতে পারে না, এটি "এমভি: 'এ' থেকে 'বি' তে স্থানান্তরিত করতে পারে না: ডিরেক্টরিটি খালি নয়" বার্তাটি দিয়ে ব্যর্থ হবে , এমনকি আপনি --forceবিকল্পটি ব্যবহার করছেন না কেন ।


আপনি এই ব্যবহার করে অন্যান্য সরঞ্জাম (যেমন চারপাশের কাজ করতে পারেন rsync, findঅথবা এমনকি cp), কিন্তু আপনাকে যত্নসহকারে প্রভাব বিবেচনা করা প্রয়োজন:

  • rsyncএকটি ডিরেক্টরিতে থাকা সামগ্রীর সামগ্রীটিকে অন্যটিতে মার্জ করতে পারে ( কেবলমাত্র সেই উত্স ফাইলগুলি নিরাপদে মুছে ফেলার জন্য নিরাপদে মুছে ফেলার জন্য --remove-source-files1 বিকল্পের সাথে আদর্শভাবে এবং -aযদি আপনি চান তবে সাধারণ অনুমতি / মালিকানা / সময় সংরক্ষণের বিকল্প সহ )
    ... তবে এটি সম্পূর্ণ অনুলিপি অপারেশন , এবং তাই খুব ডিস্ক-নিবিড় হতে পারে।
  • বর্তমানে পছন্দের বিকল্প: আপনি একত্রিত করতে পারেন rsyncএর --link-dest=DIRবিকল্প এবং (কপি ফাইল বিষয়বস্তু, যেখানে সম্ভব পরিবর্তে hardlinks তৈরী করা) --remove-source-filesএকটি শব্দার্থিক খুব নিয়মিত অনুরূপ পেতে mv
    এর জন্য, উত্স ডিরেক্টরিতে (বা গন্তব্য থেকে উত্স পর্যন্ত কোনও আপেক্ষিক পথ ) এর --link-destএকটি নিখুঁত পথ দেওয়া দরকার । … তবে এটি অযৌক্তিক উপায়ে ব্যবহার করা হচ্ছে (যা জটিলতা সৃষ্টি করতে পারে বা নাও পারে), উত্সটির পরম পথ (বা যুক্তি হিসাবে) জানতে (বা নির্ধারণ করা ) দরকার, এবং আবার খালি ডিরেক্টরি কাঠামোটিকে পরিষ্কার করার জন্য ছেড়ে দেয় প্রতি 1
    --link-dest--link-dest
  • আপনিfind টার্গেটে উত্স ডিরেক্টরি কাঠামোটি ক্রমিকভাবে পুনরায় তৈরি করতে ব্যবহার করতে পারেন , তারপরে স্বতন্ত্র ফাইলগুলি স্বতন্ত্রভাবে সরান
    ... তবে এটি উত্সটি একাধিকবার পুনরাবৃত্তি করতে হবে এবং বর্ণের অবস্থার মুখোমুখি হতে পারে (মাল্টি-স্টেপ প্রক্রিয়া চলাকালীন উত্সে নতুন ডিরেক্টরি তৈরি করা হচ্ছে) )
  • cpহার্ড লিঙ্কগুলি তৈরি করতে পারে (সহজভাবে বলা যায়, একই বিদ্যমান ফাইলে অতিরিক্ত পয়েন্টার), যা মার্জ করার অনুরূপ ফলাফল তৈরি করে mv(এবং কেবলমাত্র পয়েন্টার তৈরি হওয়ার কারণে এবং কোনও সত্যিকারের ডেটা অনুলিপি করতে হয় না বলে এটি খুব আইও-দক্ষ)
    তবে এটি আবার কোনও সম্ভাব্য রেসের শর্তে ভুগছেন (উত্সের নতুন ফাইলগুলি আগের পদক্ষেপে অনুলিপি করা না হলেও মুছে ফেলা হচ্ছে)

এগুলির মধ্যে কোনটি কার্যকর (যদি থাকে) উপযুক্ত তবে আপনার নির্দিষ্ট ব্যবহারের ক্ষেত্রে খুব বেশি নির্ভর করবে।
বরাবরের মতো, এই কমান্ডগুলির কোনও প্রয়োগ করার আগে ভাবুন এবং ব্যাকআপ রাখুন।


1: নোট যে rsync --remove-source-filesকোনও ডিরেক্টরি মুছে ফেলবে না, তাই আপনাকে find -depth -type d -empty -deleteখালি উত্স ডিরেক্টরি ট্রি থেকে পরিত্রাণ পেতে এর মতো কিছু করতে হবে ।


দেখে মনে হচ্ছে আপনি কেবল একটি প্রয়োগের চেষ্টা করেছেন mv। এই উত্তরটি বিস্তৃত সত্যের সাথে আরও ভাল। লিনাক্স, বিএসডি এবং "বাস্তব" ইউনিক্স, বা পসিক্স বা এসইএসের একটি রেফারেন্স।
ওয়ারেন ইয়ং

@ ওয়ারেন ইয়ং আপনি ঠিক বলেছেন, আমি কেবলমাত্র mvডিবিয়ান দ্বারা ব্যবহৃত বাস্তবায়ন চেষ্টা করেছি - জোর দেওয়া হচ্ছে বলে চেষ্টা করা হয়েছে , যেহেতু
ম্যানপেজটি

38
আরএসআইএনসি-র অসুবিধাটি হ'ল এটি কেবলমাত্র হার্ড লিঙ্কটি পরিবর্তনের পরিবর্তে তথ্যগুলি অনুলিপি করে, যা আপনি প্রচুর ডেটা নিয়ে কাজ করছেন যদি সম্ভাব্য সংস্থানীয় সংস্থান হয়।
জোনাথন মায়ার

7
@ কীথ নোট করুন যে গন্তব্য ডিরেক্টরিতে--delete কেবল ফাইলগুলি মুছে ফেলা হয় যা উত্স ডিরেক্টরিতে নেই।
n.st

1
@ জোনাথনমায়ার আরএসসিএনকে কয়েকটি হার্ড লিঙ্ক সম্পর্কিত বৈশিষ্ট্য হিসাবে ব্যবহার করেছেন। উদাহরণস্বরূপ আপনি কেবল -Hফাংশনটির সাথে হার্ড লিঙ্কগুলি সংরক্ষণ করতে পারেন বা আপনি ব্যবহার করে গন্তব্যস্থলে ফাইলগুলিকে লিঙ্ক করতে পারেন --link-dest। ম্যান পৃষ্ঠাটি তাদের ব্যবহার করার আগে দেখুন।
Allo

87
rsync -av /source/ /destination/
(after checking)
rm -rf /source/

এটি কি এন.এস. দ্বারা মন্তব্যের মত উত্স ফাইলগুলি সরিয়ে দেবে?
ডোমিনিক

3
না, আমি সুরক্ষার কারণে এটি দুটি ধাপে তৈরি করতে পছন্দ করব। মার্জ এবং সরানো উত্সটি অপরিবর্তনীয়। N.st অ্যাওয়ারে অ্যাডিটন পদক্ষেপেরও প্রয়োজন (ডিরেক্টরিগুলি সরাতে)।
fazie

3
--remove-source-filesসাফল্যের সাথে স্থানান্তরিত হওয়া ফাইলগুলি সরিয়ে ফেলার সুবিধা রয়েছে, তাই আপনি findখালি ডিরেক্টরিগুলি মুছে ফেলার জন্য ব্যবহার করতে পারেন এবং rsyncএস আউটপুট যাচাই না করে স্থানান্তরিত হয়নি এমন সমস্ত কিছু রেখে দেওয়া হবে ।
n.st

4
তবে এটি আসলে চলমান নয় - বড় ফাইলগুলির সাথে জড়িত থাকলে গতির প্রভাব বিশাল is
অ্যালেক্স

তবে আপনি খাঁটি পদক্ষেপ এবং বাস্তবে মার্জ করতে পারবেন না।
fazie

64

আপনি সিপি কমান্ডের -lবিকল্পটি ব্যবহার করতে পারেন , যা সম্পূর্ণ ডাটা কপির পরিবর্তে একই ফাইল সিস্টেমে ফাইলের হার্ড লিঙ্ক তৈরি করে। নিম্নলিখিত কমান্ডটি ফোল্ডারটিকে প্যারেন্ট ফোল্ডারে অনুলিপি করে ( ) ইতিমধ্যে নামের সাথে একটি ডিরেক্টরি রয়েছে ।source/folderdestinationfolder

cp -rl source/folder destination
rm -r source/folder

এছাড়াও আপনি ব্যবহার করতে পারেন -P( --no-dereferenceবা - ডি রেফারেন্স সিম্বলিক লিংক না) -a( --archive-, সব মেটাডেটা সংরক্ষণ এছাড়াও অন্তর্ভুক্ত -Pআপনার চাহিদার উপর নির্ভর বিকল্প)।


7
@ ইরৌতমিক্কা: আমি ধরে নিয়েছি আপনি কঠোর লিঙ্কগুলি ব্যবহারের কারণ জিজ্ঞাসা করছেন। হার্ড লিঙ্কগুলি কী এবং কেন সেগুলি ব্যবহার করা উচিত তা যদি আপনি না জানেন তবে সম্ভবত আপনার এই পথটি নেওয়া উচিত নয়। তবে, হার্ড লিঙ্কগুলি তৈরি করা একটি সম্পূর্ণ অনুলিপি করে না, সুতরাং এই ক্রিয়াকলাপটি সম্পূর্ণ অনুলিপিটির চেয়ে কম সময়ের জন্য আদেশ গ্রহণ করবে। এবং, আপনি সফট লিঙ্কগুলির পরিবর্তে শক্ত লিঙ্কগুলি ব্যবহার করবেন যাতে আপনি উত্স ফাইলগুলি মুছতে পারেন এবং এখনও অবৈধ পাথগুলিতে পয়েন্টারের পরিবর্তে সঠিক ডেটা রাখতে পারেন। আর cpবদলে rsyncযেহেতু প্রত্যেক সিস্টেম আছে cpসবাই এটা সঙ্গে পরিচিত এবং।
পালসুইম

7
এই সমাধানটির উজ্জ্বলতা গ্রহণযোগ্য উত্তর না হওয়ার জন্য লক্ষ্য করা যেতে পারে। এটি একটি মার্জিত সমাধান। আপনি cpঅপারেশন সময়ের সাথে একত্রীকরণের ক্ষমতা পান mv
TheHerk

2
যদি আপনি জানেন যে আপনার গন্তব্যে ইতিমধ্যে বিদ্যমান ফাইলগুলি সরিয়ে নেওয়ার দরকার নেই-n
এনডেমো

1
@ রুসলান: এটি সত্য, তবে আপনি কোনও পদ্ধতি সহ ফাইল সিস্টেমের অনুলিপি ছাড়া চলতে পারবেন না। এমনকি mv /fs1/file /fs2/(ফাইল সিস্টেম জুড়ে) একটি অনুলিপি এবং তারপরে একটি মুছুন সম্পাদন করবে।
পালসউইম

2
ঠিক আছে, তবে mvকাজ করার সময় (লক্ষ্যমাত্রা dir এখনও উপস্থিত না থাকলেও) "দক্ষতার সাথে" না থাকলে বা যা আপনি এটি কল করুন cp -rlব্যর্থ হবে।
Ruslan

23

আমি এই চারটি পদক্ষেপের সুপারিশ করব:

cd ${SOURCE}; 
find . -type d -exec mkdir -p ${DEST}/\{} \; 
find . -type f -exec mv \{} ${DEST}/\{} \; 
find . -type d -empty -delete

বা আরও ভাল, এখানে একটি স্ক্রিপ্ট যা শব্দার্থকগুলির অনুরূপ প্রয়োগ করে mv:

#!/bin/bash

DEST="${@:${#@}}"
ABS_DEST="$(cd "$(dirname "$DEST")"; pwd)/$(basename "$DEST")"

for SRC in ${@:1:$((${#@} -1))}; do   (
    cd "$SRC";
    find . -type d -exec mkdir -p "${ABS_DEST}"/\{} \;
    find . -type f -exec mv \{} "${ABS_DEST}"/\{} \;
    find . -type d -empty -delete
) done


এটি দেখতে বেশ দরকারী। আমি আমার হার্ড ড্রাইভটি পরিষ্কার করার জন্য এটি ব্যবহার করতে প্রলুব্ধ হই। আমি এই স্ক্রিপ্টে একগুচ্ছ ব্যাকআপ সঁপে দেওয়ার আগে কি অন্য কোনও বিশেষজ্ঞরা এতে মন্তব্য করতে পারেন? :-)
লার্শ

বিটিডাব্লু, আপনি যদি সমান rsync -u(নতুন হলে আপডেট করুন) করতে চান, mv(কিছু সংস্করণে অন্তত) -uবিকল্পটিও নিতে পারে । তবে সেক্ষেত্রে আপনি উত্স গাছের ফাইলগুলি আরও নতুন নয় এমন ক্ষেত্রে কভার করতে নন-শূন্য উত্স ডিরেক্টরিগুলি পাশাপাশি খালিগুলি মুছতে চান। @ স্পুয়েস: দেখে মনে হচ্ছে একাধিক উত্স উত্স হতে পারে, যদি আপনার প্রয়োজন হয়।
লার্শ

1
এটি হোয়াইটস্পেস ভালভাবে পরিচালনা করে না। আমি এটিকে কয়েকটি ডিরেক্টরিতে ফাঁকা জায়গা দিয়ে চেষ্টা করেছিলাম এবং নেস্টেড ডিরেক্টরিগুলির একটি অসীম সিরিজ দিয়ে শেষ করেছি।
রোফার

16

এখানে ডিরেক্টরিগুলি একত্রিত করার উপায় রয়েছে। এটি আরএসসিঙ্কের চেয়ে অনেক দ্রুততর কারণ এটি কেবল ফাইলগুলি অনুলিপি করার পরিবর্তে নাম পরিবর্তন করে সেগুলি মুছে ফেলা হয়।

cd source; find -type f -print0 | xargs -0 -n 1 -I {} mv '{}' 'dest/{}'

এটি আকর্ষণীয় তবে কেবল বিষয়টির সাথে অস্পষ্টভাবে প্রাসঙ্গিক এবং এমনকি ব্যবহারকারী যা জিজ্ঞাসা করেছিলেন তা দূর থেকেও নয়।
শাদুর

17
প্রকৃতপক্ষে, জুয়েলের কোড ব্যবহারকারী অনুপস্থিত ডিরেক্টরি তৈরি ব্যতীত ব্যবহারকারীদের যা চেয়েছিল তা সুনির্দিষ্টভাবে করে। আপনার আবার দেখা উচিত?
জোনাথন মায়ার

3
আমি "-প্রিন্ট0" সন্ধানে এবং xargs এ "-0" ব্যবহার করতে যুক্ত করব কারণ নামগুলিতে ফাঁকা আছে এমন ফাইল রয়েছে। এছাড়াও, একটি ছোট সমস্যা আছে, যদি কোনও নামের মধ্যে প্রথম বন্ধনী থাকে তবে সেগুলি সরানো হবে না।
মার্কুজ

2
এটি অল্প সংখ্যক ফাইলের জন্য আরএসসিএনসি থেকে অনেক দ্রুত, তবে এটি প্রতিটি ফাইলের জন্য একটি নতুন প্রক্রিয়া জোর করে, এইভাবে সংখ্যক ছোট সংখ্যক ফাইলের সাথে পারফরম্যান্স অতুলনীয়। @ পালসুইমের উত্তর এই সমস্যায় ভুগছে না।
b0fh

2
কমান্ডটি destইতিমধ্যে যদি একই নামের মতো ডিরেক্টরি থাকে তবে কমান্ডটি ব্যর্থ হবে source। এবং ফাইলগুলি একটিতে সরানো হবে dest, যা রয়েছে source। কমান্ডটি এর চেয়ে বেশি কিছু করে নাmv source/* source/dest/.
সিল্ভড

3

এটি সম্পাদন করার একটি উপায় হ'ল ব্যবহার করা:

mv folder/* directory/folder/
rmdir folder

যতক্ষণ না দুটি ফাইলের একই নাম থাকে folderএবং ততক্ষণ directory/folderআপনি একই ফলাফল অর্জন করবেন অর্থাত্ মার্জ করা।


3
ঠিক কীভাবে rm folderকাজ করে?
জ্যাকগল্ড

5
পছন্দ করুন :)
n.st

rm folder -fRসর্বদা আমার জন্য কাজ করে
অক্টোপাস

2
সচেতন হন যে এটি লুকানো ফাইলগুলির জন্য কাজ করবে না
b0fh

2

শুদ্ধতম অনুলিপিগুলির জন্য, আমি টার (-) বি ব্লকরেড অনুলিপি পদ্ধতি ব্যবহার করি।

উদাহরণস্বরূপ, উত্স পথের মধ্যে থেকে (সেখানে প্রয়োজনে 'সিডি'):

tar cBf - <sourcefolder> | (cd /your/target/folder ; tar xBf -)

এটি উত্স গাছের সঠিক অনুলিপি তৈরি করে, মালিকের সাথে এবং অনুমতিগুলি অক্ষত int এবং যদি লক্ষ্য ফোল্ডারটি বিদ্যমান থাকে তবে ডেটা একত্রিত করা হবে। ইতিমধ্যে বিদ্যমান ফাইলগুলি ওভাররাইট করা হবে।

উদাহরণ:

 $ cd /data1/home
 $ tar cBf - jdoe | (cd /data2/home ; tar xBf -)

কপির অ্যাকশনটি সফল হলে আপনি উত্সটি ( rm -rf <source>) সরাতে পারেন । অবশ্যই এটি কোনও সঠিক পদক্ষেপ নয়: আপনি উত্সটি সরিয়ে না দেওয়া পর্যন্ত ডেটা অনুলিপি করা হবে।

বিকল্প হিসাবে আপনি ভার্বোজ হতে পারেন (ফাইলটি অনুলিপি করা হচ্ছে এমন স্ক্রিনে প্রদর্শিত হবে), -v সহ: tar cBvf -

  • c: সৃষ্টি
  • B: সম্পূর্ণ ব্লক পড়ুন (পাইপ পড়ার জন্য)
  • v: ক্রিয়াপদ
  • f: লিখতে ফাইল
  • x: নির্যাস
  • -: stdout / stdin

sourcefolder*(বর্তমান ফোল্ডারের কোনও কিছুর জন্য ) ও হতে পারে


তারার নির্দিষ্টকরণ f -সাধারণত অপ্রয়োজনীয় - ডিফল্টটি স্ট্যান্ডিন / স্টাডআউট থেকে লেখার জন্য পড়তে হয়।
মুড়ু

1

এখানে একটি স্ক্রিপ্ট আমার জন্য কাজ করেছে। আমি আরএসসিএনসি এর চেয়ে এমভি পছন্দ করি তাই আমি জুয়েল এবং জোনাথন মায়ারের সমাধানগুলি ব্যবহার করি।

#!/bin/bash

# usage source1 .. sourceN dest

length=$(($#-1))
sources=${@:1:$length}
DEST=$(readlink -f ${!#})
for SRC in $sources; do
    pushd $SRC;
    find . -type d -exec mkdir -p ${DEST}/{} \;
    find . -type f -exec mv {} ${DEST}/{} \;
    find . -type d -empty -delete
    popd
done

এই সমাধানটি সঠিকভাবে পথের নামগুলি এড়ায় না, সাবধান হন।
ব্যবহারকারী 12439

@ ব্যবহারকারী 12439, আপনি কোন অংশটি ঠিক করবেন তা যদি আমাকে দেখান তবে আমি সমাধানটি আপডেট করব।
xer0x

1

সিপি বা আরএসএনসি-র মতো কমান্ড ব্যবহার করা ভাল ধারণা নয়। বড় ফাইলগুলির জন্য, এটি একটি দীর্ঘ সময় নিতে হবে। এমভি আরও দ্রুততর হয় যেহেতু এটি শারীরিকভাবে ফাইলগুলি অনুলিপি না করে কেবল ইনডগুলি আপডেট করে। আপনার অপারেটিং সিস্টেমের ফাইল ম্যানেজার ব্যবহার করা আরও ভাল বিকল্প। ওপেনসুজের জন্য কনকেরার নামে একটি ফাইল ম্যানেজার রয়েছে। এটি ফাইলগুলি অনুলিপি না করেই স্থানান্তর করতে পারে। এটি উইন্ডোজের মতো "কাট এবং পেস্ট" ফাংশন করেছে। ডিরেক্টরি এ-এর সমস্ত উপ-ডিরেক্টরি নির্বাচন করুন ডানদিকে ক্লিক করুন এবং "বিভাজন" ডিরেক্টরি বিতে একই নামের সাব-ডিরেক্টরি থাকতে পারে। এটি তাদের একীভূত করবে। আপনি একই নামের সাথে ফাইলগুলি ওভাররাইট করতে বা পুনরায় নামকরণ করতে চান সেগুলিও বিকল্প রয়েছে।


1
ওপি যখন জিজ্ঞাসা করা হয় তখন mvকী হয়।
don_crissti

0

পাইথন সমাধান

যেহেতু আমি একটি সন্তুষ্ট প্রাক-বিদ্যমান সমাধানটি খুঁজে পাইনি, তাই আমি এটি অর্জন করার জন্য একটি দ্রুত পাইথন স্ক্রিপ্ট তৈরি করার সিদ্ধান্ত নিয়েছি।

বিশেষত, এই পদ্ধতিটি দক্ষ কারণ এটি কেবল উত্স ফাইল ট্রিটিকে একবার নীচে নেমে গেলে।

এটি আপনাকে নিজের পছন্দ অনুসারে ফাইল ওভাররাইট হ্যান্ডলিংয়ের মতো জিনিসগুলিকে দ্রুত টুইট করার অনুমতি দেবে।

ব্যবহার:

move-merge-dirs src/ dest/

সব বিষয়বস্তু সরানো হবে src/*মধ্যে dest/এবং src/অদৃশ্য হয়ে যাবে।

সরানো-একত্রীকরণ-dirs

#!/usr/bin/env python3

import argparse
import os

def move_merge_dirs(source_root, dest_root):
    for path, dirs, files in os.walk(source_root, topdown=False):
        dest_dir = os.path.join(
            dest_root,
            os.path.relpath(path, source_root)
        )
        if not os.path.exists(dest_dir):
            os.makedirs(dest_dir)
        for filename in files:
            os.rename(
                os.path.join(path, filename),
                os.path.join(dest_dir, filename)
            )
        for dirname in dirs:
            os.rmdir(os.path.join(path, dirname))
    os.rmdir(source_root)

if __name__ == '__main__':
    parser = argparse.ArgumentParser(
        description='Move merge src/* into dest. Overwrite existing files.'
    )
    parser.add_argument('src_dir')
    parser.add_argument('dest_dir')
    args = parser.parse_args()
    move_merge_dirs(args.src_dir, args.dest_dir)

গিটহাব উজানের দিকে

এটি আরও দেখুন: https://stackoverflow.com


0

ফাইল এবং ফোল্ডারগুলিকে অন্য গন্তব্যে নিয়ে যাওয়ার জন্য এই আদেশটি:

$ mv /source/path/folder /target/destination/

মনে রাখবেন : mvযদি ফোল্ডার কমান্ড কাজ করবে না মিশে গিয়ে তৈরি হচ্ছে (অর্থাত একই নামের আরেকটি ফোল্ডার ইতিমধ্যে গন্তব্য মধ্যে উপস্থিত) এবং গন্তব্য এক খালি না থাকে

এমভি: '/ উত্স / পথ / ফোল্ডার' থেকে '/ টার্গেট / গন্তব্য / ফোল্ডার' এ স্থানান্তরিত করতে পারে না: ডিরেক্টরিটি ফাঁকা নয়

গন্তব্য ফোল্ডারটি খালি থাকলে উপরের কমান্ডটি ঠিকঠাক কাজ করবে।

সুতরাং, উভয় ফোল্ডারটিকে যে কোনও ক্ষেত্রে মার্জ করার জন্য,
হয় এটি 2 কমান্ডে করুন:

$ cp -rf /source/path/folder /target/destination/
$ rm -rf /source/path/folder

অথবা উভয়কে এককালীন কমান্ড হিসাবে একত্রিত করুন:

$ cp -rf /source/path/folder /target/destination/ && rm -rf /source/path/folder

এমভি = সরানো
সিপি = অনুলিপি
আরএম = সরান

-r ডিরেক্টরির জন্য (ফোল্ডার)
-f বল ফাঁসি

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