2011-12-14 16 views
5

क्या रूबी में फ़ाइल को सुरक्षित रूप से मिटाने का कोई मणि या माध्यम है? मैं बाहरी कार्यक्रमों से बचना चाहता हूं जो सिस्टम पर मौजूद नहीं हो सकते हैं।मैं सुरक्षित रूप से फ़ाइल कैसे मिटा सकता हूं?

"सुरक्षित मिटाएं" द्वारा मैं फ़ाइल सामग्री को ओवरराइट करने का जिक्र कर रहा हूं।

उत्तर

3

आप * nix पर हैं, एक बहुत अच्छा तरीका है बस कार्यकारी/open3/open4 का उपयोग कर कॉल चूरे के लिए होगा:

Writing a file shredder in python or ruby?: इस समान पद

`shred -fxuz #{filename}` 

http://www.gnu.org/s/coreutils/manual/html_node/shred-invocation.html

चेक

+1

_ "मैं बाहरी प्रोग्राम से बचना चाहता हूं जो सिस्टम पर मौजूद नहीं हो सकते हैं।" _ मुझे लगता है कि इसका मतलब है कि कोई यह नहीं मान सकता कि ओएस का क्या उपयोग किया जाता है, लेकिन वांछित जहां रूबी चलता है वहां दौड़ने के लिए। – Phrogz

2

बस

  1. फ़ाइल
  2. कम से कम राशि वर्तमान फ़ाइल आकार के बराबर
  3. flush() और close()
  4. दोहराने एन के दिनों में कुछ कचरा बारे में खोलते हैं, तो मिश्रण और शून्य के साथ कचरा 0xff के विभिन्न गुजरता है पर
+0

कोड नमूना क्यों न दिखाएं? –

3

इस तरह से कुछ आपको शुरू हो जाएगा:

#!/usr/bin/env ruby 

abort "Missing filename" if (ARGV.empty?) 

ARGV.each do |filename| 
    filesize = File.size(filename) 
    [0x00, 0xff].each do |byte| 
    File.open(filename, 'wb') do |fo| 
     filesize.times { fo.print(byte.chr) } 
    end 
    end 
end 

यह आपको क्लॉ से।

अधिक पूर्णता के लिए, आप बाइट में 0 और 1 बिट्स को वैकल्पिक करने के लिए 0xaa और 0x55 का भी उपयोग कर सकते हैं। Random.rand(0xff) आपको 0 से 255 तक यादृच्छिक मूल्य देगा।

संबंधित मुद्दे