Làm thế nào là siêu dữ liệu tập tin được lưu trữ trong Windows?


13

(Tôi đang sử dụng Windows XP nhưng tôi đoán nó giống với tất cả các phiên bản Windows gần đây.)

Khi bạn tạo ví dụ một tài liệu văn bản trống mới , bạn sẽ thấy trong các thuộc tính của nó có kích thước 0 byte. Không byte có nghĩa là không có thông tin . Không có dữ liệu.
Tuy nhiên, tập tin có một số tên, nó vẫn có thể mang ngày truy cập, sửa đổi và tạo cuối cùng. Nó mang thông tin cho dù đó là tập tin ẩn hay không, dù chỉ đọc hay không ...

Vậy tất cả các siêu dữ liệu được lưu trữ ở đâu?


không có phép thuật ở đây Đọc những câu trả lời ở đây: stackoverflow.com/questions/4954991/ từ
HighTechGeek

Cách đây rất lâu, tôi nhớ rằng tôi đã từng sử dụng một loại vi-rút bằng cách nào đó đã làm hỏng một vài tệp trong PC để chúng có kích thước khoảng 100 GB. Mỗi người trong số họ. Trên ổ cứng 40 GB của tôi. Vì vậy, phải có một loại phép thuật nào đó ... :-D
Jeyekomon

Câu trả lời:


11

Bạn đã được dạy rằng đĩa cứng chứa các tệp, nhưng đó không phải là toàn bộ sự thật. Trên thực tế, ổ cứng chứa một số rất lớn được thể hiện bằng rất nhiều bit đơn. Nhưng cách giải thích này không có ý nghĩa gì đối với bạn cũng như máy tính của bạn, bởi vì việc xử lý các số lớn đơn lẻ không phổ biến lắm (và tôi đang nói về những con số THỰC SỰ RẤT NHIỀU). Thay vào đó, máy tính chia nó thành các 'từ' nhỏ hơn (8 bit, 16 bit, 32 bit hoặc bất cứ thứ gì) và sử dụng như thế. Tuy nhiên, đó chỉ là một loạt các từ (giả sử các từ 8 bit, tức là byte).

Bây giờ, ổ đĩa đó được phân vùng. Tôi đã giải thích tại sao phân vùng là một ý tưởng tốt trong câu trả lời này :

Nói chung, các ổ đĩa có thể được sử dụng mà không cần phân vùng. Hầu hết các ổ đĩa làm việc như vậy. Nhưng sử dụng phân vùng có nhiều lợi thế, chỉ để đặt tên cho một số trong số chúng:

  • Bạn có thể có hai hệ điều hành ngồi trên cùng một ổ cứng và không can thiệp lẫn nhau. Mỗi người sẽ coi phân vùng của nó là một ổ đĩa logic và sẽ không gây rối với những cái khác trừ khi bạn nói với nó.
  • Bạn có thể tách dữ liệu của bạn một cách hợp lý. Nếu một phân vùng bị hỏng vì một số lý do, các phân vùng khác rất có thể sẽ vẫn còn nguyên vẹn.
  • Sử dụng phân vùng tốt hơn so với sử dụng nhiều ổ cứng nhỏ hơn, bởi vì hệ thống của bạn yên tĩnh hơn, tiêu thụ ít năng lượng hơn và bạn có thể thay đổi kích thước, xóa, di chuyển chúng xung quanh, v.v.
  • Bạn có thể sử dụng một số phần của ổ cứng cho một số mục đích đặc biệt.

Bây giờ, mỗi phân vùng có hệ thống tập tin riêng của mình. Các phiên bản hiện đại của Windows sử dụng NTFS , nhưng FAT , FAT32exFAT được hỗ trợ cho các phương tiện truyền thông bên ngoài hoặc phân vùng cũ. Các bản cài đặt Linux được sử dụng hàng ngày thường sử dụng các hệ thống tập tin ext , ext4 là hệ thống mới nhất.

Hệ thống tập tin xác định cách tập tin được định vị vật lý trên đĩa. Bạn có thể nghĩ về nó như thế này: nếu bạn có một cuốn sách 10000 trang mà không có bất kỳ chương, số trang hoặc ngắt dòng nào, nó sẽ rất khó sử dụng. Tất nhiên số trang và tiêu đề chương chiếm một số không gian trên trang, nhưng chúng làm cho việc sử dụng cuốn sách dễ dàng hơn và nhanh hơn rất nhiều. Nếu bạn muốn chuyển sang chương, giả sử, 42, bạn chỉ cần tìm nó trong mục lục. Sau đó, bạn đọc qua cuốn sách cho đến khi bạn tìm thấy chương bạn muốn. Các tập tin của bạn là chương và hệ thống tập tin của bạn là cuốn sách. Siêu dữ liệu hệ thống tập tin, như ranh giới tập tin, tên tệp, v.v ... cũng chiếm dung lượng, nhưng đó là một không gian tương đối nhỏ và nó làm cho mọi thứ hoạt động nhanh hơn rất nhiều.

Nếu "chương" của bạn trống, nó vẫn có thể có tiêu đề hoặc số trang, phải không? Tệp trống chứa không byte dữ liệu. Siêu dữ liệu chiếm không gian, nhưng nó không phải là một phần của tệp, mà là của hệ thống tệp. Nếu không, bạn sẽ thấy tên tệp trong tệp văn bản của mình?

Nhân tiện, đó là lý do tại sao các phiên bản đầu tiên của DOS chỉ chấp nhận 8,3 tên - không gian dành cho tên tệp rất hạn chế. NTFS cho phép tên tệp dài 255 ký tự [1] .


Chỉ một từ nữa trên bình luận của bạn:

Tôi đã từng có một loại vi-rút bằng cách nào đó làm hỏng một vài tệp trong PC để chúng có kích thước khoảng 100 GB. Mỗi người trong số họ. Trên ổ cứng 40 GB của tôi. Vậy là phải có một loại phép thuật nào đó ... :-D

Điều đó hoàn toàn có thể có các tệp hợp lệ lớn hơn ổ cứng của bạn nhờ một tính năng gọi là các tệp thưa . Hennes có một lời giải thích tuyệt vời về những điều này trong bình luận của mình về câu hỏi này :

Hãy tưởng tượng một chất kết dính có khả năng giữ 100 trang. Nếu bạn sử dụng chất kết dính đó như một tệp thông thường, bạn có thể chèn 100 trang. Bạn có thể đọc tất cả 100. Bạn có thể viết cho tất cả 100. Bây giờ hãy tưởng tượng một chất kết dính thưa thớt. Bạn chèn trang đầu tiên bạn viết "trang 1: Nội dung A". Sau đó, bạn chèn một trang thứ hai bạn viết "trang 9999: nội dung b:". Bất cứ khi nào bạn cố gắng đọc một trang bạn nhìn nếu nó tồn tại. Nếu không, câu trả lời của bạn sẽ là một trang trống. Nếu nó tồn tại, bạn trả lại nội dung của trang. Bất cứ khi nào bạn viết vào một trang chưa tồn tại trong chất kết dính, bạn thêm một tờ giấy mới.


Nếu không, bạn sẽ thấy tên tệp trong tệp văn bản của mình? Chà, nhiều kiểu tệp phong phú như hình ảnh hoặc tệp PDF có thể chứa rất nhiều siêu dữ liệu. Ngay cả các tệp văn bản được mã hóa UTF-8 đơn giản cũng chứa một chuỗi EFBBBF bị ẩn bởi hầu hết các trình soạn thảo văn bản, vì vậy tôi hy vọng siêu dữ liệu tệp sẽ chỉ là một phần bị ẩn và không thể truy cập khác của tệp. Dù sao, bạn sẽ là một giáo viên tuyệt vời! Mỗi câu trả lời ở đây là (và sẽ) thực sự hữu ích theo một cách nào đó nhưng tôi đánh giá cao nỗ lực của bạn nhất.
Jeyekomon

Điều này không trả lời câu hỏi, phải không? Vậy tất cả các siêu dữ liệu được lưu trữ ở đâu?
Koray Tugay

@KorayTugay Tôi tin rằng câu hỏi thực tế là "Siêu dữ liệu tệp được lưu trữ trong Windows như thế nào để chúng không chiếm dung lượng ". Theo tôi, câu trả lời tốt nhất bạn có thể đưa ra trong một bài đăng Siêu người dùng là giải thích rằng chúng được lưu trữ trong hệ thống tệp chứ không phải trực tiếp trong tệp và đó là lý do tại sao không tính vào kích thước tệp. Chúng nằm trong cuốn sách, nhưng không phải là một phần của văn bản.
gronostaj

7

Mới học hôm nay về Luồng dữ liệu thay thế (ADS) của Windows. Đây là một ngã ba tài nguyên ẩn được đính kèm vào một tập tin. Nó là một phần của NTFS kể từ Windows NT 3.1.

Ví dụ: nếu bạn có tệp văn bản trống nhưng điền vào một số thông tin tóm tắt trong thẻ thuộc tính của tệp, tệp ADS ẩn được tạo và đính kèm vào tệp văn bản. Hầu hết các phiên bản Windows không bao gồm kích thước của tệp ADS khi báo cáo kích thước của tệp gốc.

Bạn có thể tạo và xem các tệp ADS từ dấu nhắc lệnh.

echo "ABCDE" > test.txt:hidden.txt

sẽ tạo một tệp test.txt với tệp ADS được gọi là hidden.txt

bạn có thể sử dụng lệnh này để chỉnh sửa tệp:

notepad test.txt:hidden.txt

Đây là một bài viết dễ đọc mà đi sâu vào chi tiết hơn.


Đó thực sự là một điều thú vị! Tôi thực sự chưa bao giờ nghe về nó ... Cảm ơn bạn.
Jeyekomon

@Jeyekomon có vẻ như 'loại' không hỗ trợ nó, pastebin.com/raw/4Ae3GGkN nhưng tôi thấy echo và notepad làm (đã thử nghiệm trong win7)
barlop

2

Tôi đã thực hiện một tìm kiếm và bắt gặp một câu hỏi tương tự được hỏi trên Stack Overflow.

Về cơ bản nó nói rằng tệp được tạo và chiếm một vài byte hoặc cụm ổ đĩa cứng, v.v ... Nó phụ thuộc vào độ chi tiết của ổ cứng và hệ thống tệp, v.v.

Họ thảo luận về nó ở đây: /programming/4954991/are-0-bytes-files-really-0-bytes

với các liên kết bổ sung để nghiên cứu thêm.


2

Trên ổ đĩa NTFS, thông tin này được lưu trữ trong các siêu dữ liệu. Cụ thể, tên tệp và dấu thời gian được lưu trữ trong một siêu tệp có tên $ MFT. Các siêu tệp không thể truy cập được bằng các phương thức Windows thông thường như Explorer hoặc dấu nhắc lệnh.

Để đọc thêm:

http://ntfs.com/ntfs-system-files.htm

http://en.wikipedia.org/wiki/NTFS


Cảm ơn bạn. Vì vậy, câu trả lời nằm ở sự hiểu biết sâu sắc hơn về hệ thống tập tin của ổ cứng của tôi ... Và vì tò mò - bạn có biết phương pháp Windows "bất thường" nào không? Cái nào thực sự hữu ích cho việc truy cập những siêu dữ liệu đó? Một vài từ khóa cho google là đủ ...
Jeyekomon

1
@Jeyekomon Bạn cần sử dụng một trình soạn thảo ngành. Có một ví dụ ở đây: blog.technet.com/b/askcore/archive/2013/03/01/
David Marshall
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.