আমি রুবীর সাথে কীভাবে একটি ফাইল স্থানান্তর করব?


উত্তর:


264

এটি করতে আপনি ফাইলUtils ব্যবহার করতে পারেন।

#!/usr/bin/env ruby

require 'fileutils'

FileUtils.mv('/tmp/your_file', '/opt/new/location/your_file')

মনে করে দেখ; আপনি যদি পার্টিশনগুলি জুড়ে চলে যান, "এমভি" ফাইলটি নতুন গন্তব্যে অনুলিপি করবে এবং উত্সের লিঙ্কটি লিঙ্ক করবে।


আমি যোগ করতে ভুলে গেছি যে আপনি পার্টিশন জুড়ে যেতে পারবেন না। ধন্যবাদ।
jেলজকো ফিলিপিন

6
আসলে এমভি আপনার জন্য অনুলিপি করে। "ফাইল (গুলি) এর এসসিআরটিকে ডেস্টে সরায় file ... ruby-doc.org/core/classes/FileUtils.html#M004330
Darkerstar

আপনি কি নিশ্চিত করতে পারবেন যে ফাইলটি অন্য একটি বিভাজন থেকে অনুলিপি করার পরে মুছে ফেলা হয়েছে?
নুপক্স

89

একটি পুরানো প্রশ্ন, আমি আশ্চর্য হয়েছি কেউ এই সহজ সমাধানের উত্তর দেয় না। আপনার ফাইলিউটিল বা একটি সিস্টেমকলের দরকার নেই, কেবলমাত্র ফাইলটির নতুন নামকরণ করুন।

File.rename source_path, target_path

শুভ কোডিং


11
ফাইলের পুনরায় নামকরণ পার্টিশন জুড়ে কাজ করবে না এবং "অবৈধ ক্রস-ডিভাইস লিঙ্ক" ত্রুটি ছুঁড়েছে। ফাইলUtils এই ক্ষেত্রে একটি ভাল পছন্দ, কিন্তু একই পার্টিশনের একটি সহজ সরল জন্য, নামকরণ কাজ।
d3vkit

@ d3vkit, ধন্যবাদ মন্তব্যে কিন্তু উইন্ডোতে এটি ড্রাইভ, স্থানীয় এবং দূরবর্তী উদাহরণগুলিতে কাজ করে, যেমন <code> File.rename 'c: /test/test.txt', 'e: /test.txt' </code>, আপনি কোন ওএস ব্যবহার করেন?
পিটার

1
আহ, উবুন্টুতে কিছু উইন্ডোজ নেটওয়ার্ক শেয়ার ব্যবহার করে বিশেষত আমার সমস্যা হয়েছিল। আমি ফাইল ইউটিলস.এমভিতেও সমস্যাটি শেষ করেছি, যা ফাইলটি সরানো হবে এবং তারপরে বলবে এটির পুরানো ফাইলটি মুছার অনুমতি নেই। আমি পুরানো ফাইল থেকে মুক্তি পাওয়ার জন্য ফাইল ইউটিলস.সি.পি এবং তারপরে ফাইল.ডিলিট ব্যবহার করে শেষ করেছি।
d3vkit

3
এটি অবশ্যই লিনাক্সের পার্টিশন জুড়ে কাজ করে না। আমার ধারণা এটি অন্তর্নিহিত ওএস এপিআইয়ের উপর নির্ভর করে। নিশ্চিত হতে, শুধু ব্যবহার করুন FileUtils.mv
akostadinov

1
নোট কিছু ক্ষেত্রে আপনি একই পার্টিশনের মধ্যে সীমাবদ্ধ রাখতে চাইতে পারেন, যেমন পারমাণবিক অপারেশন নিশ্চিত করতে আমি এখনই করছি doing
Zorg

16

FileUtils.move

require "FileUtils"
FileUtils.move 'stuff.rb', '/notexist/lib/ruby'

3
+1 নোট করুন .move .mv এর একটি উপনাম তাই আপনার ফাইলUtils.mv করতেও সক্ষম হওয়া উচিত।
টিম নাইট

1
ধন্যবাদ, আমি ঠিক পছন্দ করি। আরও কিছু .mv। :)
jeljko ফিলিপিন

1
আমি না। mvআমাকে আমার প্রিয় কনসোলের মতো মনে হচ্ছে;)
এরিক এসকোবেডো

7
এবং রুবির সম্পর্কে দুর্দান্ত জিনিসটি এটি উভয়ই রয়েছে moveএবং mvতাই যে কোনও একটি বেছে নিতে পারে। :)
jeljko ফিলিপিন

1
হওয়া উচিত require "fileutils"(কোনও ক্যাপ নেই)
ক্লিন্ট পাচল

11

মডিউল 'ফাইলুটিলেটস' ব্যবহার করুন এবং ফাইলআউটিলস.এমভি ব্যবহার করুন:

http://www.ruby-doc.org/stdlib-2.0/libdoc/fileutils/rdoc/FileUtils.html#method-c-mv


এজন্য আমাদের উত্তরটি পোস্ট করা এবং তারপরে ক্রেডিট / সংস্থানগুলির জন্য একটি লিঙ্ক সরবরাহ করা উচিত।
তাস

1

এখানে একটি টেম্পলেট।

 src_dir = "/full_path/to_some/ex_file.txt"

 dst_dir = "/full_path/target_dir"

 #Use the method below to do the moving
 move_src_to_target_dir(src_dir, dst_dir)



 def archive_src_to_dst_dir(src_dir, dst_dir)

     if File.exist ? (src_dir)

     puts "about to move this file:  #{src_dir}"

     FileUtils.mv(src_dir, dst_dir)
 else

     puts "can not find source file to move"

 end
 end

-8

আপনি আপনার ফাইলটি এভাবে সরাতে পারেন

Rails.root.join ( 'foo বিন্যাস', 'দণ্ড')


1
"আমি কীভাবে একটি রেল প্রকল্পের মূল ডিরেক্টরিটির সাথে সম্পর্কিত কোনও পথ / ফাইলের নাম তৈরি করব?" এই প্রশ্নের উত্তর। এটি কিছুই সরান না।
Andreas Baumgart
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.