Có một Gem hoặc phương tiện xóa an toàn một tệp trong Ruby không? Tôi muốn tránh các chương trình bên ngoài có thể không có mặt trên hệ thống.Làm cách nào để xóa an toàn tệp?
Bằng cách "xóa an toàn", tôi đề cập đến việc ghi đè nội dung tệp.
Có một Gem hoặc phương tiện xóa an toàn một tệp trong Ruby không? Tôi muốn tránh các chương trình bên ngoài có thể không có mặt trên hệ thống.Làm cách nào để xóa an toàn tệp?
Bằng cách "xóa an toàn", tôi đề cập đến việc ghi đè nội dung tệp.
Nếu bạn đang ở trên * nix, một cách khá tốt là nên chỉ gọi xóa sạch sử dụng exec/open3/Open4:
`shred -fxuz #{filename}`
http://www.gnu.org/s/coreutils/manual/html_node/shred-invocation.html
Kiểm tra bài này tương tự:
chỉ
flush()
và close()
0xff
's trên khác nhau điTại sao không hiển thị mẫu mã? –
Một cái gì đó như thế này sẽ giúp bạn bắt đầu:
#!/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
Nó sẽ giúp bạn có được clo se.
Để hiểu rõ hơn, bạn cũng có thể sử dụng 0xaa
và 0x55
để xen kẽ 0 và 1 bit trong byte. Random.rand(0xff)
sẽ cung cấp cho bạn một giá trị ngẫu nhiên từ 0 đến 255.
_ "Tôi muốn tránh các chương trình bên ngoài có thể không có trên hệ thống." _ Tôi cho rằng điều đó có nghĩa là không thể giả định hệ điều hành nào được sử dụng, nhưng mong muốn chạy bất cứ nơi nào Ruby chạy. – Phrogz