ফোল্ডারের সামগ্রীকে এক স্তর উপরে নিয়ে যান


127

আমার একটি ডিরেক্টরি রয়েছে যা আনপ্যাক করা নেই, তবে এটি একটি ফোল্ডারে রয়েছে। আমি কীভাবে বিষয়বস্তুগুলিকে এক স্তর উপরে নিয়ে যেতে পারি? আমি এসএসএইচ এর মাধ্যমে সেন্টোস অ্যাক্সেস করছি।

উত্তর:


189

'মাইফোল্ডার' নামক ফোল্ডারের সাথে এবং ফাইল স্তরক্রমের এক স্তর উপরে (আপনি যে পয়েন্টটি এটি রাখতে চান) কমান্ডটি হ'ল:

mv myfolder/* .

উদাহরণস্বরূপ উদাহরণস্বরূপ যদি কমান্ড চালানো /home/myuser/myfolderথেকে ডেটা ছিল /home/myuser/


35
সংরক্ষণাগারটিতে ডট-ফাইল রয়েছে .*কেবল না *তবে আপনার মিলও হতে পারে । এছাড়াও এখন বহির্মুখী ফোল্ডারটি সরাতে প্রান্তে। &&Mmir মাইফোল্ডার` যুক্ত করুন। এটি সংরক্ষণ করা হয়েছে কারণ এটি কেবল তখনই চালানো হবে যখন এমভি সাফল্যটি ফেরত দেয় এবং কারণ rmdir কোনও খালি ডিরেক্টরি সরিয়ে ফেলবে না।
কালেব

ভাল পয়েন্ট .*। আসল ফোল্ডারটি সরিয়ে ফেলা উভয়ই তুচ্ছ এবং জিজ্ঞাসা করা হয়নি তাই আমরা ওপি কে তার সাথে চুক্তি করব।
রুদু

1
@ কালেব কি উভয় *এবং .*এক লাইনে লেখা সম্ভব ? কেবল কৌতূহল
রিচার্ড

2
@ রিচার্ড হ্যাঁ, এটি। এর পক্ষে যুক্তিগুলি mvসর্বশেষ যুক্তি ব্যতীত উত্স হিসাবে থাকবে যা চলার লক্ষ্য হতে হবে (এবং একাধিক উত্সের ক্ষেত্রে একটি ফোল্ডার হওয়া দরকার)।
কালেব

1
আমি বাশ পাচ্ছি:/bin/mv: Argument list too long
ড্রাগগ্রেসপর্কুল

26

কেবল এটি স্ফটিক পরিষ্কার করার জন্য, উপরে রুদুর উত্তর এবং মন্তব্যগুলি থেকে নেওয়া।

আপনার যদি সমস্ত বিষয়বস্তু সরানোর দরকার হয় তবে ফাইলগুলি অন্তর্ভুক্ত করুন যা একটি দিয়ে শুরু হয়। (.htaccess, .git, ইত্যাদি), আপনাকে আপনার কমান্ডে * এবং। * উভয়ই অন্তর্ভুক্ত করতে হবে। তাই ভালো:

 mv subfolder/* subfolder/.* .

এটি আপনার বর্তমান ফোল্ডারে সাবফোল্ডারের সামগ্রীগুলি স্থানান্তরিত করবে। শেষের আগে স্পেসটি নোট করুন।


এটি কাজ করে তবে আমি পেয়েছি mv: rename fake/. to ./.: Invalid argumentএবংmv: rename fake/.. to ./..: Invalid argument
মাসলো

16

নিম্নলিখিত পদ্ধতি দ্বারা এটি সম্ভব:

  • ব্যবহার rsync:

    rsync -vua --delete-after foo/ .
  • ব্যবহার cpএবং rmdir:

    cp -vaR foo/. . && rmdir foo/
  • ব্যবহার mv( dotglobবিকল্প সক্ষম সহ):

    shopt -s dotglob # Includes filenames beginning with a dot.
    mv -- foo/* .    # Where foo/ is the folder consisting the files.
    shopt -u dotglob # Disables previously enabled dotglob option.

    foo/আপনার ফোল্ডারটি কোথায় রয়েছে যার সামগ্রীতে এক স্তর উপরে সরানো হবে।

    দেখুন: help shoptএবং man bash

  • ব্যবহার mv( এখানে পরামর্শ হিসাবে ):

    mv foo/* foo/.[^.]* . && rmdir foo/

    দ্রষ্টব্য: এটি একটি ফাইল মিস করবে foo/..bar..

    দ্রষ্টব্য: পসিক্স শেলের জন্য আপনার প্রয়োজন [!.]


কি rsync সুইচ হয় -v, -u, -aএবং -rকরছেন? AFAICT, -vভার্ভোজ, যা কেবল আরএসসিএনকে আরও তথ্য মুদ্রণ করে। -uমানে আপডেট - কোনও ফাইল নতুন হলে তা অনুলিপি করুন। এটি প্রাসঙ্গিক বলে মনে হয় না। -aআর্কাইভ মানে। এটি ফাইলের মালিক এবং অনুমতিগুলি অনুলিপি করবে এবং সিঙ্কটিকে পুনরাবৃত্ত করবে। -rঅর্থ পুনরাবৃত্তি, কিন্তু এটি ইতিমধ্যে দ্বারা আবৃত -a
rjmunro

-uযখন আপনি ইতিমধ্যে সেখানে উপস্থিত ডেটা সরানোর অতিরিক্ত সময় ব্যয় করতে চান না তখন কার্যকর হয় (বিশেষত ধীর স্টোরেজ ডিভাইসের জন্য)। আমি মুছে ফেলেছি -r, যেহেতু এটি -aআপনি উল্লিখিত হিসাবে কভার করা হয়েছে।
কেনরব

1
mv foo/* foo/.[^.]* .foo/..bar..উদাহরণস্বরূপ বলা একটি ফাইল মিস করবে । নোট করুন যে পসিক্স শেলগুলির জন্য আপনার প্রয়োজন [!.]
স্টাফেন চেজেলাস

এটি উল্লেখ করা উচিত, rsync -vua --delete-after foo/ .এটি বর্তমান ডিরেক্টরিতে ইতিমধ্যে বিদ্যমান থাকতে পারে এমন সমস্ত কিছু মুছে ফেলে।
ডেভিড

7

শুধু একটি এমভি কমান্ড জারি করুন

mv (directory)/* .

আপনি যদি ডিরেক্টরি মুছতে চান তবে যুক্ত করুন

rm -rf (directory)

ধরে নেওয়া হয়েছে যে আপনি (ডিরেক্টরি) এর একটি মূল ডিরেক্টরিতে আছেন

আপনি যদি (ডিরেক্টরি) ভিতরে থাকেন তবে

mv * ../

13
অতিরিক্ত সুরক্ষা টিপ: আপনার জানা ডিরেক্টরিটি মুছে ফেলা উচিত, rmdirডিরেক্টরি খালি না হলে অভিযোগ করা এবং প্রস্থান করা উচিত , rm -rপরিবর্তে কেবল এটি এবং এটির সমস্ত বিষয়বস্তু মুছে ফেলা উচিত। (এটি পোকা-জোয়াল
An

দুর্দান্ত পয়েন্ট! আমি সেভাবে না করার কোনও কারণ ভাবতে পারি না।
মার্ক লালর

@ মার্কলালোর একটি কারণ হ'ল ম্যাকোজে সর্বব্যাপী মত লুকানো ফাইলের উপস্থিতি .DS_storemvকমান্ড বেশি বয়সীদের (ছাড়া সরানো হবে না dotglobসেট)।
আকসেলা

0

আপনারা যারা একটি ভাগ করা সার্ভারে আছেন তাদের জন্য আপনাকে এই জাতীয় কিছু ব্যবহার করতে হবে

ফাইল সরানো

mv -v ~/public_html/public_html/* ~/public_html/

ফাইলগুলি অনুলিপি করতে

cp -a ~/public_html/public_html/* ~/public_html/


2
উপরের প্রশ্নটি বিষয়বস্তু অনুলিপি না করে চলন্ত সম্পর্কে জিজ্ঞাসা করে। এটি একটি সাবফোল্ডারে অরিজিনালগুলি রেখে ফাইলগুলি নকল করবে। এছাড়াও "ভাগ করা" সার্ভার হওয়া বা না হওয়া এর সাথে আসলে কিছুই করার নেই।
কালেব

1
আপনার ডান এবং এখানে এর উত্তর ...
রিকার্ডো হ্যাভোক

2
আপনার সম্পাদনাটি আবার করুন: ইতিমধ্যে উত্তোলিত উত্তরগুলির চেয়ে আলাদা কীভাবে ? এবং এটির সাথে "ভাগ করা সার্ভার" এর কী সম্পর্ক রয়েছে? দয়া করে এই আইটেমগুলি ব্যাখ্যা করতে সম্পাদনা করুন যদি এটি কোনও কার্যকর অবদান হতে চলেছে যা ইতিমধ্যে এখানে যা আছে তার মূল্য যোগ করে।
কালেব

1
ভাগ করা সার্ভারটির সাথে কিছু করার নেই তা সম্পর্কে আমি একমত নই। "দির" প্রবেশ করার পদ্ধতিটি একটি বিশ্বকে আলাদা করে তোলে ..
রিকার্ডো হাভোক

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