Câu trả lời:
Không có "hoàn tác" chung cho mọi hoạt động trong thiết bị đầu cuối. Nếu bạn muốn khôi phục một tập tin sau khi sử dụng, rm
bạn sẽ cần xem xét phần mềm khôi phục.
Một tùy chọn để ngăn bạn khỏi những sai lầm trong tương lai là tạo alias
es cho các lệnh thay thế để xóa tệp. Thêm chúng vào của bạn ~/.bashrc
và tập thói quen sử dụng chúng thay vì rm
.
bí danh rmi = 'rm -i'
Nếu bạn sử dụng rmi
, bạn sẽ được nhắc xác nhận xóa trong tương lai. Cố gắng tránh phát triển thói quen nhấn y
ngay sau khi bạn ra rmi
lệnh, vì điều đó sẽ đánh bại mục đích.
Bạn cũng có thể di chuyển các tệp bị xóa bởi trsh
lệnh trong thiết bị đầu cuối vào thùng rác của bạn (trên KDE và Gnome):
alias trsh='mv --target-directory="$HOME/.Trash"'
Nếu bạn sử dụng trsh
, bạn sẽ có khả năng "phục hồi" hạn chế. Coi chừng
trsh dir1/file1 dir2/file1
vẫn có thể gây mất dữ liệu không thể phục hồi.
rm
để rm -i
là bạn làm quen với mạng lưới an toàn mà nó mang lại cho bạn. Sau đó, bạn đi vào một máy khác, không có bí danh đó ...
rmi
-> rm -i
. Đó thực sự là một sai lầm khi chỉ đơn giản là cản trở một chương trình hiện có bằng cách đặt bí danh cho nó.
Không có thùng rác cho dòng lệnh.
Bạn có thể thử một số tiện ích chưa được phục hồi khác nhau, nhưng không có gì đảm bảo rằng chúng sẽ hoạt động.
Bạn có thể sử dụng thùng rác nếu bạn sử dụng KDE khi bạn chạy gui. Đây là tiện ích dòng lệnh để xóa / khôi phục bằng cách sử dụng các tiện ích rác KDE.
alias rm=trash
các ốc vít dòng lệnh thông thường của bạn đi kèm với các nút hoàn tác.
alias rm=trash
là có khả năng nguy hiểm, nếu có bất kỳ cơ hội nào bạn sẽ sử dụng hệ thống của người khác một ngày và quên (hoặc ssh). An toàn hơn nhiều khi chỉ quen với việc viết trash
thay vì rm
.
Bạn có thể tạo rm
bí danh cho trash
lệnh (Bạn sẽ cần cài đặt trash
trước.) Thêm phần này vào ~/.bashrc
:
alias rm='trash'
Điều này thích hợp hơn alias rm='mv --target-directory=$HOME/.Trash'
vì ~ / .Trash KHÔNG phải là thư mục rác cho gnome. IMHO tốt hơn là để trash
tìm ra nơi thư mục rác thực sự.
btw Tôi đã đăng bài này trong một bình luận nhưng tôi không có đủ đại diện.
Hai giải pháp kỹ thuật nữa chưa được nêu tên:
Có một câu hỏi lớn hơn ở đây đó là giá trị giải quyết. Các lệnh Shell không phải là trò chuyện (họ không kiểm tra lại những gì bạn muốn) và họ mong bạn biết bạn đang làm gì. Đây là cơ bản cho cách chúng được thiết kế . Đây là một tính năng, không phải là một lỗi.
Một số người cảm thấy trượng phu khi họ sử dụng các lệnh như vậy, điều mà tôi nghĩ là khá ngớ ngẩn, nhưng điều quan trọng là phải hiểu được những nguy hiểm. Bạn có thể gây ra một thiệt hại lớn trong một thiết bị đầu cuối, ngay cả khi bạn không root. Tôi nghĩ rằng bạn có thể thực sự quan tâm rm
, nhưng vì bạn đã nói "Chúng ta có thể hoàn tác các hoạt động được thực hiện trong thiết bị đầu cuối không", tôi nghĩ rằng điều này đáng để nói. Câu trả lời chung là không, bạn không thể.
Tùy chọn 1: Xem Phục hồi các tệp Linux từ Hệ thống tệp ext2 . Trang này trỏ đến một chương trình, được viết bởi Sebastian Hetze của công ty LunetIX, rằng (như tiêu đề gợi ý) xóa các tệp đã bị xóa gần đây khỏi hệ thống tệp ext2. Ví dụ sử dụng:
# undelete -d /dev/hdc3 -a 10
Cảnh báo:
Tùy chọn 2: Tôi có rsnapshot (rsync) đang chạy trên máy của mình, giúp tạo ảnh chụp nhanh hàng giờ trong các thư mục đã chọn. Nó tăng dần làm điều này mỗi giờ, 2 giờ hoặc bất cứ điều gì bạn bảo CRON làm. Sau một ngày, nó sẽ tái chế các ảnh chụp nhanh này thành một ảnh chụp nhanh hàng ngày và sau 7 ngày trong một tuần, v.v. Điều này khiến tôi có thể quay ngược thời gian trong khoảng một tháng hoặc lâu hơn mỗi giờ! Nó khá tốt với không gian đĩa vì nó tạo ra các liên kết tượng trưng đến các tệp không bao giờ thay đổi ...
Khôi phục bằng cách sử dụng grep trên /dev/partition
( Linux hoặc Unix Khôi phục các tệp đã bị xóa - các tệp chưa xóa ),
grep -b 'search-text' /dev/partition > file.txt
Chỉ cần thử.
Tồn tại các tiện ích chưa được phục hồi cho ext2, nhưng hầu hết các hệ thống tệp Linux khác bị kẹt trong Thời kỳ đồ đá và không có bất kỳ tính năng sử dụng nâng cao nào. Tình trạng đáng buồn khi xem xét các ổ đĩa khổng lồ có đủ dung lượng để không bao giờ xóa tệp lại là điều phổ biến.
Vì vậy, bạn đang bị mắc kẹt với ba tùy chọn:
Hãy sao lưu thường xuyên, ví dụ với một lệnh như:
rsync -axvRP --backup --backupdir=/backup/incr/$(date -I) /home/ /backup/root/
Sử dụng một công cụ kiểm soát phiên bản như git
cho tất cả công việc của bạn. Mặc dù điều này sẽ không bảo vệ chống lại một kẻ điên rm -r
giết chết kho lưu trữ, nhưng nó sẽ bảo vệ chống lại những rắc rối thông thường vì bạn sẽ sử dụng git rm
không thô rm
.
Hãy cẩn thận và không tin tưởng quá nhiều vào rm -i
, trash-cli
và bạn bè, như hầu hết các dữ liệu bạn sẽ mất trên vỏ bạn sẽ không mất bởi tình cờ rm
, nhưng bởi ống sai địa chỉ, tập tin đầu ra gõ sai, sai địa mv
và các công cụ, ví dụ, điều đó sẽ ghi đè lên dữ liệu của bạn, không chỉ xóa nó.
Làm cả ba cho số lượng an toàn tối đa.
kiểm tra cái này ... có thể hữu ích http://artmees.github.io/rm/
giả sử bạn đã làm
rm very_important_file
từ thiết bị đầu cuối. phục hồi tập tin này là một quá trình tẻ nhạt và không phải lúc nào cũng thành công
thay vào đó nếu bạn sử dụng tập lệnh được đề cập lên. bạn không phải lo lắng về điều này bởi vì
rm very_important_file
mv very_important_file ~/.Trash/
là tương đương. tập lệnh xử lý nhiều trường hợp hơn và hoàn toàn không làm thay đổi hệ thống của bạn rm
và đó là vì nó được đưa vào thư mục bin cục bộ của người dùng để nó làm mờ hệ thống rm và không ảnh hưởng đến nó hoặc vô hiệu hóa sử dụng nó
Đây là một cách tiếp cận răng cưa tinh tế nhưng không mất bất kỳ tính năng nào
Đối với tôi (openuse leap 42.2, NTFS Pendrive) PhotoRec - cũng bởi testdisk
người tạo - đã hoạt động :) Tuy nhiên, nó không khôi phục được tên tệp.
PhotoRec là phần mềm khôi phục dữ liệu tệp được thiết kế để khôi phục các tệp bị mất bao gồm video, tài liệu và lưu trữ từ đĩa cứng, CD-ROM và hình ảnh bị mất (do đó là tên Phục hồi ảnh) từ bộ nhớ máy ảnh kỹ thuật số. PhotoRec bỏ qua hệ thống tệp và theo dõi dữ liệu cơ bản, vì vậy nó sẽ vẫn hoạt động ngay cả khi hệ thống tệp của phương tiện của bạn đã bị hỏng nghiêm trọng hoặc được định dạng lại.
Tôi đã cài đặt nó bằng cách sử dụng các kho lưu trữ tiêu chuẩn trong openSUSE
rm
: Nó hủy liên kết một tệp từ nóinode
. Câu hỏi: "Tập tin sẽ đi đâu khirm
lệnh được ban hành" -> unix.stackexchange.com/questions/10883/ cũng có thể là một cách đọc tốt cho bạn.