আমি কীভাবে ফাইলগুলি এবং ডিরেক্টরিগুলি লিনাক্সের প্যারেন্ট ফোল্ডারে স্থানান্তর করতে পারি?


77

লিনাক্সে (উবুন্টু), আপনি কীভাবে সমস্ত ফাইল এবং ডিরেক্টরিগুলি প্যারেন্ট ডিরেক্টরিতে স্থানান্তর করবেন?


আমি এখন পর্যন্ত সবচেয়ে সম্পূর্ণ উত্তর পেয়েছি এমন প্রশ্নটি
DJCrashdummy

উত্তর:


66
খুঁজে। -ম্যাক্সডেপথ 1-এক্সেক এমভি {} .. \;

এটি লুকানো ফাইলগুলিও সরানো হবে।

আপনি বার্তা পাবেন:

এমভি: move সরানো যায় না `' থেকে `../। ': ডিভাইস বা সংস্থান ব্যস্ত busy

যখন এটি সরানোর চেষ্টা করে .(বর্তমান ডিরেক্টরি) তবে এতে কোনও ক্ষতি হবে না।


1
এটি সমস্ত সাব-ডিরেক্টরি থেকে সমস্ত ডিরেক্টরিকে বর্তমান ডিরেক্টরিটির পিতামাতার কাছেও স্থানান্তরিত করবে। আমি -maxdepth 1নিশ্চিত হতে ব্যবহার করব।
haphink

1
এখন এটি বলে: ./scripts' to এমভি: চলাচল করতে পারে না .. / স্ক্রিপ্টস: ডিরেক্টরি খালি নয়

1
আপনার অবশ্যই আপনার মূল ডিরেক্টরিতে এবং আপনার বর্তমান ডিরেক্টরিতে স্ক্রিপ্ট নামে একটি ডিরেক্টরি থাকতে হবে have সরানোর আগে আপনাকে এটির নতুন নামকরণ করতে হবে।
haphink

1
এটি কাজ করেছে তবে আপনি একটি অত্যন্ত গুরুত্বপূর্ণ একটি তথ্য রেখে গেছেন - আপনাকে অবশ্যই এটি উপ-ডিরেক্টরি থেকে চালাতে হবে run এছাড়াও এটি উপ-ডিরেক্টরি নিজেই মুছবে না সুতরাং আপনাকে অবশ্যই একটি ডিরেক্টরি ব্যাকআপ করতে হবে এবং সাব-ডিরেক্টরিতে একটি rmdir করতে হবে।
ক্র্যাফটার

89

আমি এখানে এসেছি কারণ আমিও এই বিষয়ে নতুন। কোনও কারণে উপরেরগুলি আমার জন্য কৌশলটি করেনি। আমি দির থেকে সমস্ত ফাইলকে তার পিতামহির দিকে নিয়ে যেতে যা করেছি তা হ'ল:

cd to/the/dir
mv * ../

12
এটি যদিও লুকানো ফাইল সরায় না
ওয়েভ্যাসাইলার

1 লাইনার:(cd ${ANDROID_NDK_HOME}/android-ndk-r14b/ && mv * ../)
দাউদ ড্রজড

10

শেল এ এটি টাইপ করুন:

mv *.* ..

এটি সমস্ত ফাইলকে এক স্তর উপরে নিয়ে যায়।

চরিত্রটি *একটি ওয়াইল্ডকার্ড। সুতরাং *.debসমস্ত .deb ফাইল সরানো হবে এবং Zeitgeist.*Zeitgeist.avi এবং Zeitgeist.srt একটি ফোল্ডার সরানো হবে, যেহেতু অবশ্যই, ..প্যারেন্ট ডিরেক্টরিটি নির্দেশ করে।

ফোল্ডার ইত্যাদিসহ সমস্ত কিছু সরিয়ে নেওয়ার *পরিবর্তে কেবল ব্যবহার করুন*.*


3
এই dirs সঙ্গে কাজ করে না! বা লুকানো ফাইলগুলি

এটি আমার সাথে কমপক্ষে কাজ করে rs
মার্টিনাস 21

5
আপনি ডিরেক্টরিগুলি অন্তর্ভুক্ত করতে চান *না*.*
ক্রিস এস

এটি একটি দুর্দান্ত ডকুমেন্টারি
ব্ল্যাকবার্ন027

6

এটি এর চেয়ে সহজ হতে পারে না:

mv * ../

লুকানো ফাইলগুলি সরানোর জন্য:

mv /path/subfolder/{.,}* /path/ 

mvফাইলগুলি স্থানান্তরিত করার জন্য একটি আদেশ, *যার অর্থ সমস্ত ফাইল এবং ফোল্ডার এবং ../এটি প্যারেন্ট ডিরেক্টরিতে যাওয়ার পথ।


2

ব্যাশ আপনি ব্যবহার করতে পারেন shopt -s dotglob * ম্যাচ সব ফাইল করতে এবং তাদের দ্বারা কেবল সরানো

shopt -s dotglob; mv * ..

এটি সেরা সমাধান নয় যেহেতু সেটিংসটি শেলটির জন্য স্থায়ী হয় যতক্ষণ না আপনি এটিকে পরিবর্তন করে

shopt -u dotglob

তবে আমি জানি এটি জেনে রাখা ভাল।


4
একটি subshell এটা কল করুন: (shopt -s dotglob && mv * ..)। এইভাবে, বিকল্পটি কেবল সেই সাবশেলের স্থানীয়।
মার্টিন উয়েডিং

ভাল উত্তর - এটি সহজ, লুকানো ফাইল অন্তর্ভুক্ত এবং অনুলিপি সম্পর্কে কোনও ত্রুটি ঘটায় না '' এবং '..'
ড্যানিয়েল হাওয়ার্ড

1

একটি পদ্ধতি যা কোনও ত্রুটি সৃষ্টি করে না এবং প্রতিবার কাজ করে:

ls -1A . | while read -r file                                                    
do                                                                                  
    mv "./${file}" ..                                                            
done

1
find . -maxdepth 2 -type f -exec mv {} .. \;

সাব-ফোল্ডারগুলি থেকে সমস্ত ফাইলকে পিতামাতায় স্থানান্তর করতে আমি উপরের বৈচিত্রটি ব্যবহার করেছি।

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

যেমন।

/data/2001/file_1
/data/2002/file_2
/data/2003/file_3

0

ধরে নিচ্ছি যে আপনার সমস্ত লুকানো ফাইল ডট দিয়ে শুরু হবে তারপরে একটি চিঠি বা একটি নম্বর (যা তাদের উচিত) এর সাহায্যে আপনি ব্যবহার করতে পারেন

mv * .[A-Za-z0-9]* ..

.[A-Za-z0-9]*অংশ নিশ্চিত আপনি স্থানান্তর করতে চেষ্টা করবেন না করা হয় .বা ..বরাবর, যা ব্যর্থ হবে।


0

সমস্ত ফাইল এবং ফোল্ডারগুলি লিনাক্সের প্যারেন্ট ডিরেক্টরিতে সরানো সহজ।

এই ফোল্ডারে যান এবং এই আদেশটি ব্যবহার করুন:

mv * /the full path

উদাহরণস্বরূপ, যদি আপনার ফাইল এবং ফোল্ডারগুলি নিম্নরূপ থাকে:

/home/abcuser/test/1.txt 
                   2.txt
                   3.jpg
                   4.php
                   1folder
                   2folder

সিডি এর মাধ্যমে সেই ফোল্ডারে যান:

cd /home/abcuser/test
mv * /home/abcuser

আপনার সমস্ত ফাইল এবং ফোল্ডারগুলি abcuser ফোল্ডারে (প্যারেন্ট ডিরেক্টরি) চলে যাবে।


2
ধন্যবাদ @ গ্যারেথ, প্রায় একই রকম ছিল। অভিষেক, দয়া করে কোনও সম্পর্কযুক্ত লিঙ্ক পোস্ট করবেন না, এর মধ্যে কী ধারণাটি রয়েছে? এছাড়াও, দয়া করে আপনার বিন্যাস পরীক্ষা করুন check অতিরিক্তভাবে, /the full pathলিনাক্সে কাজ করে না, আপনাকে ফাঁকা স্থান থেকে পালাতে হবে /the\ full\ path
slhck

0

ডিরেক্টরি পরিবর্তন করার দরকার নেই। পথের শেষে কেবল * অন্তর্ভুক্ত করুন:

mv /my/folder/child/* /my/folder/

উপরে কেবল কোনও লুকানো ফাইলই সরানো হয়। কেবল লুকানো ফাইলগুলি সরাতে ব্যবহার করুন *

mv /my/folder/child/.* /my/folder/

উপরে দুটি একটি কমান্ড একত্রিত করা যেতে পারে:

mv /my/folder/child/{.,}* /my/folder/

আরও দেখুন: * কীভাবে লুকানো ফাইলগুলি সহ সমস্ত ফাইলকে প্যারেন্ট ডিরেক্টরিতে সরানো যায় *


0
find -type f|while read line; do mv $line ${line##*/}; done

একটি উত্তর অবদান জন্য ধন্যবাদ। যদিও এটি সাধারণ পরিস্থিতিতে কাজ করতে পারে, পাইপ findদেওয়া while readব্যবহারের একটি খারাপ উপায় findএবং আরও ভাল উত্তর ইতিমধ্যে পোস্ট করা হয়েছে।
স্কট

-1

সাব ডিরেক্টরিতে স্যুইচ করুন এবং ফাইলগুলি অনুলিপি করতে বা সরানোর জন্য নিম্নলিখিত কমান্ডটি কার্যকর করুন।

উদাহরণস্বরূপ: একটি প্যারেন্ট ডিরেক্টরি এবং বি সাব ডিরেক্টরি, আমরা বি থেকে একটি ফাইল (প্যারেন্ট ডিরেক্টরিতে সাব ডিরেক্টরি) সমস্ত ফাইল সরিয়ে / অনুলিপি করতে চাই।

cd b
cp * ..
mv * ..

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