Làm thế nào để tìm tập tin và thư mục nào đã bị xóa gần đây trong Linux?


23

Tôi đang có một thư mục cụ thể ( /home/sam/officedocuments) đang có hàng trăm thư mục và tệp. Tôi nghĩ rằng tôi đã xóa một số tệp và thư mục do nhầm lẫn nhưng tôi không chắc chắn.

Cách tìm tập tin / thư mục nào:

  • Đã xóa gần đây trong Linux?
  • Thay đổi gần đây trong Linux?

Tôi chỉ muốn biết những tập tin và thư mục đã bị xóa. Khôi phục những tập tin và thư mục đã xóa không quan trọng đối với tôi.

HĐH: CentOS


1
Bạn nên cho chúng tôi biết bạn đang sử dụng hệ thống tập tin nào. Ví dụ với ext2, ext3 và ext4 Bạn có thể sử dụng ext3greptiện ích để tìm hiểu thông tin về các tệp đã bị xóa. Với một số kịch bản, có thể kết hợp ứng dụng đơn giản liệt kê các tệp bị xóa dựa trên thư mục cụ thể. Tuy nhiên, các tiện ích này cần truy cập thô vào đĩa và như vậy cực kỳ nguy hiểm nếu không được sử dụng đúng cách ( các thao tác chỉ đọc không chặn sẽ hoàn toàn an toàn nếu bạn nhớ rằng ghi vào đĩa cùng lúc có thể khiến hoạt động hiện tại trả lại dữ liệu bị hỏng / không chính xác ).
GoFundMonica - codidact.org

Câu trả lời:


3

Gần đây đã thay đổi trong Linux?

Sử dụng findđể tìm kiếm theo thời gian sửa đổi. Ví dụ: để tìm các tệp được chạm trong 3 ngày qua:

find /home/sam/officedocuments -mtime -3

Đối với "lớn hơn 3 ngày", sử dụng +3.

Gần đây đã xóa Linux trong Linux?

Khá nhiều điều không thể. Khi một tập tin bị xóa, nó sẽ biến mất. Trên hầu hết các hệ thống, điều này không được ghi lại ở bất cứ đâu.


Cảm ơn. Trong 3 ngày, tôi cần sử dụng 3... những gì tôi cần sử dụng cho những 30phút cuối cùng ?
Sumit Gupta

Linux có luôn yêu cầu xác nhận trước khi xóa bất kỳ tệp / thư mục nào không?
Sumit Gupta

16
"Khá nhiều điều không thể" Điều này hoàn toàn sai và vì điều này tôi phải đánh giá thấp điều này. Thời gian xóa được lưu trữ trong một số hệ thống tập tin, ví dụ về fs đó là ext3hệ thống tập tin. ext3grep có thể giúp đỡ khi săn lùng. Tôi đã nhận được superuser.com/a/433785/132604 có một số thông tin và liên kết đến các tiện ích có thể được sử dụng để tìm (cũng có thể khôi phục ) các tệp đã bị xóa và thông tin về chúng. Khi bạn xóa tệp, trong hầu hết các hệ thống tệp, nó không thực sự bị xóa mà được đánh dấu là không gian có thể bị ghi đè theo yêu cầu.
GoFundMonica - codidact.org

Bạn có thể khôi phục các tệp từ bản sao lưu và so sánh danh sách các tệp đó với các tệp trên hệ thống tệp. Điều đó sẽ mang lại một danh sách các tập tin bị thiếu và mới được tạo. Câu trả lời của Grawity đã cho thấy bạn có thể lọc đúng giờ, do đó bạn có thể giới hạn chỉ với các tệp đã bị xóa.
Hennes

11

Bạn có thể nên cài đặt Công cụ Inotify . sau đó bạn có thể sử dụng inotifywaitlệnh để lắng nghe các sự kiện xảy ra cho thư mục được chỉ định.

Cụ thể nếu bạn muốn xem các tập tin và thư mục bị xóa, hãy sử dụng

inotifywait -m -r -e delete dir_name

và đăng nhập đầu ra này trong một số tập tin.

Hi vọng nó có thể giải quyết vấn đề của bạn


1
Âm thanh như cách tiếp cận tốt nhất cho việc này. Có cli-app / daemon đầy hứa hẹn có tên iwatch mà bạn có thể muốn đưa vào câu trả lời của mình. +1 để sử dụng các công cụ phù hợp để giải quyết vấn đề.
GoFundMonica - codidact.org

ravi, @SampoSarrala - điều này có thể áp dụng được không nếu tôi muốn xem các tập tin trong thư mục /gốc, có tính đến việc gắn / ngắt kết nối tài khoản? Tôi đoán, trong trường hợp đó, điều duy nhất khả thi để giữ nhật ký xóa sẽ là một mô-đun hạt nhân sẽ móc vào unlink(xem stackoverflow.com/questions/8588386/ trên ); cũng man inotifywaitnói: "--recursive: Cảnh báo: ... tùy chọn này trong khi xem ... một cây lớn, có thể sẽ mất khá nhiều thời gian. Ngoài ra, ..., sẽ đạt được số lượng đồng hồ inotify tối đa cho mỗi người dùng. tối đa mặc định là 8192; "
sdaau

@sdaau dmesg [| tail]sẽ hiển thị cho bạn [gần đây] gắn kết / ngắt kết nối, nếu đó là những gì bạn đang hỏi.
SeldomNeedy

Tôi tự hỏi nếu có một cách để tìm ra quá trình nào đã xóa tệp (nói một công việc định kỳ) khi áp dụng. Có một trường hợp các tập tin biến mất một cách bí ẩn ...
Nagev

0

Linux thường không yêu cầu xác nhận trước khi xóa các tệp, giả sử bạn đang sử dụng rmtừ dòng lệnh.

Để tìm các tệp được sửa đổi trong 30 phút qua, hãy sử dụng touch --date="HH:MM" /tmp/referenceđể tạo một tệp có tên tham chiếu với dấu thời gian từ 30 phút trước (trong đó HH: MM tương ứng với 30 phút trước). Sau đó sử dụng find /home/sam/officedocuments -newer /tmp/referenceđể tìm tập tin mới hơn tham chiếu.

Nếu bạn đã xóa các tệp bằng công cụ GUI, chúng vẫn có thể nằm trong một số loại "thùng rác". Nó phụ thuộc vào những gì bạn đang sử dụng cho một môi trường máy tính để bàn. Nếu bạn đã sử dụng rmtừ dòng lệnh, thì hãy thử một trong những tiện ích được đề cập trong câu trả lời này . (Hat tip cho @Sampo cho liên kết đó.)


Đừng nói "biến mất mãi mãi" ... xem bình luận về câu trả lời khác. Bây giờ tôi cảm thấy như thế này: xkcd.com/386 :)
GoFundMonica - codidact.org
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.