컴퓨터 파일

**컴퓨터 파일**(, 순화어: 기록철)은 시스템이 단위로 처리하는 데이터의 명명된 컬렉션이다. 오늘날 이 시스템은 파일 시스템이라고 불린다. 많은 오래된 컴퓨터 시스템에는 그 자체로 독립적인 파일 시스템이 없었지만, 파일 추상을 제공하기 위해서는 관리 소프트웨어 기능이 필요하다.

파일은 이동식 매체, 네트워크 또는 인터넷을 통해 컴퓨터와 모바일 장치 간에 공유되고 전송될 수 있다.

서로 다른 종류의 컴퓨터 파일은 다른 용도로 설계된다. 파일은 서면 메시지, 문서, 스프레드시트, 이미지, 비디오, 프로그램 또는 기타 다양한 종류의 데이터를 저장하도록 설계될 수 있다. 특정 파일은 여러 데이터 형식을 동시에 저장할 수 있다.

컴퓨터 프로그램을 사용하여 사람은 컴퓨터 파일을 열고, 읽고, 변경하고, 저장하고, 닫을 수 있다. 컴퓨터 파일은 임의의 횟수만큼 다시 열고, 수정하고, 복사할 수 있다.

## 어원
[right|섬네일|[천공 카드 파일]]
[right|섬네일|[IBM 305 시스템의 이중 디스크 파일]]

"파일(file)"이라는 단어는 라틴어 filum("실, 끈")에서 유래했다.

"파일"이라는 단어는 컴퓨터 스토리지의 맥락에서 1940년 1월에 처음 사용되었다. "과학 계산에서의 천공 카드 방법(Punched Card Methods in Scientific Computation)"에서 W. J. 에커트는 다음과 같이 언급했다. "초기 홀러리스 태뷸레이터가 천문학에서 처음 광범위하게 사용된 것은 콤리에 의해서였다. 그는 이를 사용하여 연속적인 차이점으로부터 표를 만들고 많은 조화 항을 더했다." "함수의 표는 인쇄된 표로서나 천공 카드 파일로서든 그 차이점으로부터 매우 효율적으로 구성된다."

1950년 2월, 파퓰러 사이언스 잡지에 실린 미국 라디오 회사(RCA) 광고에서 RCA는 새로 개발한 "메모리" 진공관을 설명하며 다음과 같이 말했다: "수많은 계산 결과가 '파일'로 보관되어 다시 꺼낼 수 있다. 이러한 '파일'은 이제 RCA 연구소에서 개발된 '메모리' 튜브에 존재한다. 전자적으로 계산기에 입력된 숫자를 유지하고, 새로운 숫자를 기억하는 동안 저장하며, 복잡한 수학 문제를 통해 지능적인 솔루션을 가속화한다."

1952년에 "파일"은 특히 천공 카드에 저장된 정보를 의미했다.

초기 사용에서는 내용물이 아닌 하드웨어 자체가 "파일"로 불렸다. 예를 들어, IBM 350 디스크 드라이브는 "디스크 파일"로 불렸다. 약 1961년에 버로스 MCP와 MIT 호환 시분할 시스템이 하나의 저장 장치에서 여러 가상 "파일"을 관리하는 "파일 시스템" 개념을 도입한 것이 현재 "파일"이라는 단어의 의미의 기원이다. 비록 현대의 "레지스터 파일"이 파일의 초기 개념을 보여주지만, 그 사용은 크게 줄어들었다.

## 파일 시스템
파일 시스템은 소프트웨어 소비에 파일 추상을 제공하여 데이터를 파일로 구성하고, 이름을 지정하고, 조작할 수 있도록 한다. 초기 컴퓨터는 별도의 파일 시스템을 포함하지 않았지만, 오늘날 우리가 파일 시스템이라고 부르는 기능은 필요했으며 종종 코어 운영 체제에서 직접 제공되었다.

현대 컴퓨터 시스템에는 파일 시스템이 포함될 뿐만 아니라 일부 시스템은 여러 개를 사용한다. 유닉스 계열 시스템은 일반적으로 여러 파일 시스템을 사용할 수 있도록 한다. 일부 윈도우 시스템에서는 MS-DOS 및 이전 버전의 윈도우의 구형 FAT형 파일 시스템이 일반 파일 시스템인 NTFS 파일 시스템과 함께 지원된다.

## 파일 관리자
파일 관리자는 사용자가 파일을 직접 조작할 수 있도록 하는 유틸리티 소프트웨어이다. 일반적으로 파일을 이동하고, 생성하고, 삭제하고, 이름을 변경하며, 디렉터리(폴더라고도 함)를 변경할 수 있지만, 파일 내용을 직접 보는 것을 지원하지 않을 수도 있다. 일반적으로 컴퓨터 시스템에는 기본 파일 시스템용 파일 관리자 프로그램이 하나 이상 있다. 예를 들어, 파일 탐색기는 윈도우에서 일반적으로 사용되며, 노틸러스는 여러 리눅스 배포판에서 사용된다.

## 파일 내용
대부분의 최신 운영체제에서 파일은 1차원 바이트 배열로 구성된다. 파일은 데이터의 컨테이너일 뿐이므로 파일의 형식은 내용에 따라 정의된다.

일부 플랫폼에서는 파일의 파일 확장자에 따라 형식이 지정되며, 이는 바이트가 의미 있게 구성되고 해석되는 규칙을 지정한다. 예를 들어, 일반 텍스트 파일(윈도우의 )의 바이트는 ASCII 또는 UTF-8 문자와 연관되는 반면, 이미지, 비디오 및 오디오 파일의 바이트는 다르게 해석된다. 대부분의 파일 형식은 또한 파일 자체에 대한 기본적인 정보를 전달할 수 있도록 메타데이터를 위해 몇 바이트를 할당한다.

일부 파일 시스템은 파일 형식 외부에 임의의 (파일 시스템에서 해석되지 않는) 파일별 데이터를 저장할 수 있지만, 확장 파일 속성 또는 포크와 같이 파일에 연결되어 있다. 다른 파일 시스템에서는 사이드카 파일 또는 소프트웨어별 데이터베이스를 통해 이 작업을 수행할 수 있다. 그러나 이러한 모든 방법은 컨테이너 및 압축 파일 형식보다 메타데이터 손실에 더 취약하다.

### 파일 크기

파일 크기는 파일에 할당된 저장 공간의 척도이다. 종종 바이트 단위로 표현되지만, 많은 구형 파일 시스템은 블록이나 트랙과 같은 더 큰 단위로 크기를 추적했다. 그럼에도 불구하고 때로는 더 정확한 측정이 가능했다. 예를 들어, CP/M은 텍스트 파일의 끝을 Ctrl-Z로 표시하여 바이트 정밀도로 크기를 얻는 데 사용할 수 있었다.

일반적으로 설계상 파일 시스템은 최대 파일 크기를 제한한다.

### 파일 내 데이터 구성
컴퓨터 파일의 정보는 개별적으로 다르지만 몇 가지 공통적인 특성을 공유하는 더 작은 정보 패킷(종종 "레코드" 또는 "줄")으로 구성될 수 있다. 예를 들어, 급여 파일은 회사 내 모든 직원의 정보와 급여 세부 정보를 포함할 수 있다. 급여 파일의 각 레코드는 한 직원에게만 해당하며, 모든 레코드는 급여와 관련된 공통적인 특성을 가진다. 이는 컴퓨터가 없는 사무실의 특정 파일 캐비닛에 모든 급여 정보를 저장하는 것과 매우 유사하다. 텍스트 파일은 종이의 인쇄된 줄에 해당하는 텍스트 줄을 포함할 수 있다. 또는 파일은 임의의 이진 이미지(바이너리 블롭)를 포함하거나 실행 파일을 포함할 수 있다.

정보가 파일로 그룹화되는 방식은 전적으로 설계 방식에 달려 있다. 이로 인해 가장 간단한 것부터 가장 복잡한 것까지 상상할 수 있는 모든 목적에 대해 다소 표준화된 파일 구조가 풍부하게 생겨났다. 대부분의 컴퓨터 파일은 필요에 따라 파일을 생성, 수정 또는 삭제하는 컴퓨터 프로그램에서 사용된다. 프로그램을 만드는 프로그래머는 어떤 파일이 필요하고, 어떻게 사용될 것이며, (종종) 그 이름을 결정한다.

어떤 경우에는 컴퓨터 프로그램이 컴퓨터 사용자에게 보이는 파일을 조작한다. 예를 들어, 워드 프로세싱 프로그램에서 사용자는 직접 이름을 지정하는 문서 파일을 조작한다. 문서 파일의 내용은 워드 프로세싱 프로그램이 이해하는 형식으로 구성되지만, 사용자는 파일의 이름과 위치를 선택하고 파일에 저장될 대부분의 정보(단어 및 텍스트 등)를 제공할 수 있다.

많은 응용 프로그램은 내부 마커를 사용하여 포함된 다양한 정보 유형을 구분하는 압축 파일이라는 단일 파일에 모든 데이터 파일을 압축한다. 압축 파일의 이점은 전송을 쉽게 하기 위해 파일 수를 줄이고, 저장 공간 사용량을 줄이거나, 단순히 오래된 파일을 정리하는 것이다. 압축 파일은 다음 사용 전에 자주 압축을 해제해야 한다.

## 파일 작업
프로그램이 파일에 대해 수행할 수 있는 가장 기본적인 작업은 다음과 같다.
* 새 파일 만들기
* 파일의 접근 권한 및 특성 변경
* 파일 내용을 프로그램에서 사용할 수 있도록 파일 열기
* 파일에서 데이터를 읽기
* 파일에 데이터를 쓰기
* 파일 삭제
* 파일과 프로그램 간의 연결을 종료하는 파일 닫기
* 파일 시스템 내에서 내용을 다시 쓰지 않고 지정된 크기로 파일 자르기
* 내용을 쓰지 않고 파일에 공간 할당. 일부 파일 시스템에서는 지원되지 않는다.

컴퓨터의 파일은 생성, 이동, 수정, 확장, 축소(잘림) 및 삭제될 수 있다. 대부분의 경우 컴퓨터에서 실행되는 컴퓨터 프로그램이 이러한 작업을 처리하지만, 필요한 경우 컴퓨터 사용자도 파일을 조작할 수 있다. 예를 들어, 마이크로소프트 워드 파일은 일반적으로 사용자 명령에 따라 마이크로소프트 워드 프로그램에 의해 생성되고 수정되지만, 사용자는 파일 탐색기 (윈도우 컴퓨터의 경우)와 같은 파일 관리자 프로그램을 사용하거나 명령줄 인터페이스 (CLI)를 사용하여 이러한 파일을 직접 이동하거나, 이름을 변경하거나, 삭제할 수도 있다.

유닉스 계열 시스템에서는 사용자 공간 프로그램이 파일을 낮은 수준에서 직접 작동하지 않는다. 커널만 파일을 처리하며, 사용자 공간 프로그램에 투명하게 모든 사용자 공간과 파일 간의 상호 작용을 처리한다. 운영체제는 추상화 수준을 제공하는데, 이는 사용자 공간에서 파일과의 상호 작용이 단순히 파일 이름(아이노드 대신)을 통해 이루어진다는 것을 의미한다. 예를 들어, rm filename은 파일 자체를 삭제하는 것이 아니라 파일에 대한 하드 링크만 삭제한다. 파일에는 여러 링크가 있을 수 있지만, 모든 링크가 제거되면 커널은 해당 파일의 메모리 공간을 재할당 가능한 여유 공간으로 간주한다. 이 여유 공간은 일반적으로 보안 위험으로 간주된다(파일 복구 소프트웨어의 존재 때문). 모든 보안 삭제 프로그램은 파일의 데이터를 지우기 위해 커널 공간(시스템) 함수를 사용한다.

파일 시스템 내에서 파일을 이동하는 것은 데이터 내용을 다시 쓸 필요가 없으므로 거의 즉시 완료된다. 경로만 변경하면 된다.

### 이동 방법
장치나 파티션 간에 파일을 이동할 때, 일부 파일 관리 소프트웨어는 전송된 후 소스 디렉토리에서 선택된 각 파일을 **개별적으로** 삭제하는 반면, 다른 소프트웨어는 모든 파일이 전송된 후에야 **모든 파일을 한 번에** 삭제한다.

예를 들어, `[[mv (유닉스)|mv]]` 명령은 와일드카드를 사용하여 파일을 개별적으로 이동할 때(예: `mv -n sourcePath/* targetPath`) 전자의 방법을 사용하지만, 전체 디렉토리를 이동할 때(예: `mv -n sourcePath targetPath`) 후자의 방법을 사용한다.

마이크로소프트 파일 탐색기도 접근 방식이 다르다. 대용량 스토리지 파일 이동에는 전자의 방법을 사용하지만, MTP를 통해 파일을 전송할 때는 에 설명된 대로 후자의 방법을 사용한다.

전자의 방법(소스에서 개별 삭제)은 전송이 시작된 직후, 즉 첫 번째 파일이 완료된 후 소스 장치 또는 파티션에서 공간이 즉시 확보된다는 이점이 있다. 후자의 방법은 전체 선택 영역의 전송이 완료된 후에야 공간이 확보된다.

후자의 방법으로 불완전한 파일 전송이 예상치 못하게 중단되면(예: 예기치 않은 전원 차단, 시스템 중단 또는 장치 연결 해제), 소스 장치 또는 파티션에서 공간이 확보되지 않는다. 사용자는 불완전하게 기록된(잘린) 마지막 파일을 포함하여 소스에서 남은 파일을 병합해야 한다.

개별 삭제 방법을 사용하면 파일 이동 소프트웨어는 사용자가 파일 전송을 수동으로 중단하는 경우를 대비하여 전송이 완료된 모든 파일을 누적하여 추적할 필요가 없다. 후자(나중에 삭제) 방법을 사용하는 파일 관리자는 이미 전송이 완료된 파일만 소스 디렉토리에서 삭제하면 된다.

## 식별 및 구성
섬네일|200px|right|계층 구조로 정렬된 파일과 폴더
현대 컴퓨터 시스템에서 파일은 일반적으로 이름(파일 이름)을 사용하여 접근된다. 일부 운영 체제에서는 이름이 파일 자체와 연결된다. 다른 시스템에서는 파일이 익명이며, 이름이 있는 링크가 파일을 가리킨다. 후자의 경우 사용자는 링크의 이름을 파일 자체와 동일시할 수 있지만, 이는 동일한 파일에 둘 이상의 링크가 존재하는 경우 특히 잘못된 유추이다.

파일(또는 파일에 대한 링크)은 디렉터리에 위치할 수 있다. 그러나 더 일반적으로 디렉터리는 파일 목록 또는 파일에 대한 링크 목록을 포함할 수 있다. 이 정의 내에서 "파일"이라는 용어가 디렉터리를 포함한다는 점은 매우 중요하다. 이는 디렉터리가 하위 디렉터리를 포함하는 디렉터리 계층 구조의 존재를 허용한다. 디렉터리 내에서 파일을 참조하는 이름은 일반적으로 고유해야 한다. 즉, 디렉터리 내에 동일한 이름이 없어야 한다. 그러나 일부 운영 체제에서는 이름에 유형 사양이 포함될 수 있으며, 이는 디렉터리가 디렉터리와 파일과 같은 여러 유형의 개체에 대해 동일한 이름을 포함할 수 있음을 의미한다.

파일 이름이 지정되는 환경에서 파일의 이름과 파일의 디렉터리 경로는 컴퓨터 시스템의 다른 모든 파일 중에서 고유하게 식별되어야 한다. 두 파일이 동일한 이름과 경로를 가질 수 없다. 파일이 익명인 경우 이름이 지정된 참조는 이름 공간 내에 존재한다. 대부분의 경우 이름 공간 내의 모든 이름은 정확히 0개 또는 1개의 파일을 참조한다. 그러나 모든 파일은 어떤 이름 공간에서도 0개, 1개 또는 여러 이름으로 표현될 수 있다.

어떤 문자열이든 응용 프로그램의 맥락에 따라 파일 또는 링크에 대한 올바른 이름이 될 수 있다. 이름이 올바른지 여부는 사용되는 컴퓨터 시스템의 유형에 따라 달라진다. 초기 컴퓨터는 파일 이름에 몇 글자 또는 숫자만 허용했지만, 현대 컴퓨터는 거의 모든 유니코드 문자 또는 유니코드 숫자의 조합(일부 255자까지)을 포함하는 긴 이름을 허용하여 파일의 목적을 한눈에 쉽게 이해할 수 있도록 한다. 일부 컴퓨터 시스템은 파일 이름에 공백을 포함할 수 있도록 허용하고, 다른 시스템은 그렇지 않다. 파일 이름의 대소문자 구분은 파일 시스템에 의해 결정된다. 유닉스 파일 시스템은 일반적으로 대소문자를 구분하며 사용자 수준 응용 프로그램이 문자 대소문자만 다른 파일을 생성할 수 있도록 허용한다. 마이크로소프트 윈도우는 대소문자 구분과 관련하여 서로 다른 정책을 가진 여러 파일 시스템을 지원한다. 일반적인 FAT 파일 시스템은 사용자가 디스크 편집기를 사용하여 디렉터리 엔트리의 파일 이름을 편집하는 경우 이름이 대소문자만 다른 여러 파일을 가질 수 있다. 그러나 사용자 응용 프로그램은 일반적으로 사용자에게 이름은 같지만 대소문자가 다른 여러 파일을 생성하도록 허용하지 않는다.

대부분의 컴퓨터는 폴더, 디렉터리 또는 카탈로그를 사용하여 파일을 계층 구조로 구성한다. 사용되는 용어에 관계없이 개념은 동일하다. 각 폴더는 임의의 수의 파일을 포함할 수 있으며, 다른 폴더도 포함할 수 있다. 이 다른 폴더는 하위 폴더로 불린다. 하위 폴더는 더 많은 파일과 폴더를 포함할 수 있으며, 이처럼 하나의 "마스터 폴더"(또는 "루트 폴더"—이름은 운영 체제마다 다름)가 여러 수준의 다른 폴더와 파일을 포함하는 트리와 같은 구조를 구축한다. 폴더는 파일처럼 이름을 지정할 수 있다(종종 이름이 없는 루트 폴더는 제외). 폴더를 사용하면 파일을 논리적인 방식으로 더 쉽게 구성할 수 있다.

컴퓨터가 폴더 사용을 허용하는 경우, 각 파일과 폴더는 자체 이름뿐만 아니라 파일 또는 폴더가 위치한 폴더를 식별하는 경로를 갖는다. 경로에서는 슬래시와 같은 특수 문자가 파일과 폴더 이름을 구분하는 데 사용된다. 예를 들어, 이 문서에 표시된 그림에서  경로는 라는 폴더에 있는 라는 파일을 고유하게 식별하며, 이 폴더는 다시 이라는 폴더에 포함되어 있다. 이 예에서는 폴더와 파일 이름이 슬래시로 구분된다. 최상위 또는 루트 폴더는 이름이 없으므로 경로가 슬래시로 시작한다(루트 폴더에 이름이 있었다면 이 첫 번째 슬래시 앞에 왔을 것이다).

많은 컴퓨터 시스템은 파일에 무엇이 포함되어 있는지 식별하는 데 도움이 되는 확장자를 파일 이름에 사용하며, 이를 파일 유형이라고도 한다. 윈도우 컴퓨터에서 확장자는 파일 이름 끝에 점(마침표)이 오고 그 뒤에 파일 유형을 식별하는 몇 글자가 이어진다.  확장자는 텍스트 파일을 식별하고,  확장자는 일반적으로 마이크로소프트 워드 파일 형식의 모든 유형의 문서 또는 문서를 식별하며, 기타 등등이다. 컴퓨터 시스템에서 확장자를 사용하는 경우에도 컴퓨터 시스템이 이를 인식하고 따르는 정도는 다를 수 있다. 일부 시스템에서는 필수적이지만, 다른 시스템에서는 확장자가 제시되더라도 완전히 무시된다.

## 보호
많은 최신 컴퓨터 시스템은 파일의 우발적 및 의도적 손상으로부터 보호하는 방법을 제공한다. 여러 사용자를 허용하는 컴퓨터는 파일 권한을 구현하여 누가 파일을 수정, 삭제 또는 생성하고 폴더를 생성할 수 있는지 여부를 제어한다. 예를 들어, 특정 사용자에게는 파일이나 폴더를 읽을 권한만 부여되고 수정하거나 삭제할 권한은 부여되지 않을 수 있으며, 또는 사용자에게 파일이나 폴더를 읽고 수정할 권한은 부여되지만 실행할 권한은 부여되지 않을 수 있다. 권한은 또한 특정 사용자에게만 파일이나 폴더의 내용을 볼 수 있도록 허용하는 데 사용될 수 있다. 권한은 파일의 정보에 대한 무단 조작이나 파괴로부터 보호하고, 사적인 정보를 무단 사용자로부터 기밀로 유지한다.

많은 컴퓨터에 구현된 또 다른 보호 메커니즘은 읽기 전용 플래그이다. 파일에 대해 이 플래그가 켜지면(컴퓨터 프로그램 또는 사람 사용자에 의해 수행될 수 있음) 파일은 검사할 수 있지만 수정할 수는 없다. 이 플래그는 컴퓨터 시스템의 내부 부분에서만 사용되는 특수 파일과 같이 수정되거나 지워져서는 안 되는 중요한 정보에 유용하다. 일부 시스템에는 특정 파일을 보이지 않게 하는 숨김 플래그도 포함되어 있다. 이 플래그는 사용자가 변경해서는 안 되는 필수 시스템 파일을 숨기기 위해 컴퓨터 시스템에서 사용한다.

## 저장
유용한 목적을 가진 모든 파일은 어떤 물리적 형태를 가져야 한다. 즉, 실제 컴퓨터 시스템의 파일(추상적 개념)은 존재하기 위해 실제 물리적 유사물을 가져야 한다.

물리적 측면에서 대부분의 컴퓨터 파일은 일종의 데이터 스토리지 장치에 저장된다. 예를 들어, 대부분의 운영체제는 파일을 하드 디스크에 저장한다. 하드 디스크는 1960년대 초부터 비휘발성 스토리지의 유비쿼터스 형태였다. 파일이 임시 정보만 포함하는 경우 RAM에 저장될 수 있다. 컴퓨터 파일은 경우에 따라 자기 테이프, 콤팩트 디스크, DVD, 집 드라이브, USB 플래시 드라이브 등 다른 미디어에도 저장될 수 있다. 솔리드 스테이트 드라이브의 사용도 하드 디스크 드라이브와 경쟁하기 시작했다.

유닉스 계열 운영 체제에서는 많은 파일에 연결된 물리적 저장 장치가 없다. 예를 들어 과 , ,  디렉터리 아래의 대부분 파일이 그러하다. 이것들은 가상 파일이다. 즉, 운영 체제 커널 내의 객체로 존재한다.

실행 중인 사용자 프로그램에서 보면 파일은 일반적으로 파일 제어 블록 또는 파일 핸들로 표현된다. 파일 제어 블록(FCB)은 파일 이름 등을 설정하고 매개 변수로 운영 체제에 전달하기 위해 조작되는 메모리 영역이다. 이는 구형 IBM 운영 체제와 CP/M 및 MS-DOS 초기 버전을 포함한 초기 PC 운영 체제에서 사용되었다. 파일 핸들은 일반적으로 오파크 자료형이거나 정수이다. 이는 1961년경 ALGOL 기반 버로스 B5000에서 실행되는 버로스 MCP에 의해 도입되었지만, 이제는 널리 사용된다.

## 파일 손상

파일이 손상되었다고 말하는 것은 내용이 컴퓨터에 제대로 저장되지 않아 사람이나 소프트웨어로 제대로 읽을 수 없게 되었기 때문이다. 손상 정도에 따라 원본 파일은 때때로 복구되거나 최소한 부분적으로 이해될 수 있다. 파일은 손상된 상태로 생성되거나 나중에 덮어쓰기로 인해 손상될 수 있다.

파일이 손상될 수 있는 방법은 다양하다. 가장 흔하게는 디스크에 파일을 쓰는 과정에서 문제가 발생한다. 예를 들어, 이미지 편집 프로그램이 이미지를 저장하는 동안 예상치 못하게 충돌하면 프로그램이 전체를 저장할 수 없었기 때문에 해당 파일이 손상될 수 있다. 프로그램 자체는 사용자에게 오류가 발생했음을 경고하여 파일을 다시 저장할 수 있도록 한다. 파일이 손상되는 다른 예시는 다음과 같다.
* 열려 있는 파일이나 저장 중인 파일이 있는 상태에서 컴퓨터 자체가 예기치 않게 종료되는 경우(예: 정전으로 인해)
* 다운로드가 완료되기 전에 중단된 경우
* 하드 드라이브의 불량 섹터로 인해
* 사용자가 마운트 해제(일반적으로 "안전하게 제거"라고 함)하지 않고 플래시 드라이브(예: USB 스틱)를 제거하는 경우
* 컴퓨터 바이러스와 같은 악성 소프트웨어
* 플래시 드라이브가 너무 오래된 경우

파일 손상은 일반적으로 의도치 않게 발생한다. 그러나 학생이나 직원이 마감 기한을 연장받기 위한 기만 행위로 의도적으로 수행될 수도 있다. 요청 시 파일 손상을 제공하는 서비스도 있는데, 이는 본질적으로 특정 파일을 무작위 데이터로 채워 열거나 읽을 수 없지만 여전히 합법적인 것처럼 보이게 한다.

의도치 않은 파일 손상에 대한 가장 효과적인 대책 중 하나는 중요한 파일을 백업하는 것이다. 중요한 파일이 손상되는 경우 사용자는 백업된 버전으로 간단히 교체할 수 있다.

## 백업

컴퓨터 파일에 매우 중요한 정보가 포함되어 있는 경우, 파일을 파괴할 수 있는 재난으로부터 보호하기 위해 백업 프로세스가 사용된다. 파일 백업은 단순히 컴퓨터에 문제가 발생하거나 실수로 파일이 삭제되는 경우 복원할 수 있도록 파일을 별도의 위치에 복사하는 것을 의미한다.

파일을 백업하는 방법은 여러 가지가 있다. 대부분의 컴퓨터 시스템은 백업 프로세스를 지원하는 유틸리티 프로그램을 제공하는데, 보호해야 할 파일이 많으면 이 과정이 매우 시간이 많이 걸릴 수 있다. 파일은 종종 쓰기 가능한 CD나 카트리지 테이프와 같은 이동식 미디어에 복사된다. 동일한 컴퓨터의 다른 하드 디스크에 파일을 복사하면 한 디스크의 고장으로부터 보호되지만, 전체 컴퓨터의 고장 또는 파괴로부터 보호해야 하는 경우에는 파일을 컴퓨터에서 분리하여 안전하고 먼 곳에 보관할 수 있는 다른 미디어에 복사해야 한다.

할아버지-아버지-아들 백업(Grandfather-father-son, GFS) 방법은 자동으로 세 개의 백업을 만든다. 할아버지 파일은 파일의 가장 오래된 복사본이고 아들은 현재 복사본이다.

## 같이 보기
* 블록 (컴퓨팅)
* 문자 특수 파일
* 컴퓨터 파일 관리
* 데이터 계층 구조
* 모든 것은 파일이다
* 파일 위장
* 파일 복사
* 파일 변환
* 파일 삭제
* 파일 디렉터리
* 파일 관리자
* 파일 시스템
* 파일 이름
* 플랫 파일 데이터베이스
* 객체 구성
* 소프트 카피
* 유닉스 파일 유형
* 0바이트 파일

## 각주


분류:파일 시스템
분류:프로세스 간 통신