ASCII 대 이진 대 자동?


16

서버간에 파일을 전송하고 있으며 원래 일부 반환 및 줄 바꿈과는 달리 일부 파일이 하나의 긴 연속 줄로 수정되고 있음을 알았습니다. 나는 이것이 원래 "Auto"로 설정되었지만 추가 옵션으로 "Binary"와 "ASCII"를 사용하는 FTP 클라이언트의 전송 유형과 관련이 있다고 가정합니다.

간단히 말해서, 한 서버에서 다른 서버로 파일을 전송하는 방식의 차이점은 무엇이며, 이러한 차이점으로 위에서 언급 한 방식으로 파일을 수정할 수 있습니까?

Transfering 로부터 윈도우 TO 리눅스.

답변:


27

FTP의 "이진"전송 모드는 바이트 단위로 파일을 정확하게 복사합니다. 간단하고 간단합니다.

그러나 다른 운영 체제간에 텍스트 파일을 가져올 때는 원하는 것이 아닐 수도 있습니다. 운영 체제마다 다른 코드를 사용하여 줄 바꿈을 나타냅니다. "ASCII"모드는이 목적을 위해 존재합니다. 모든 행 끝을 소스 시스템 형식에서 대상 형식으로 자동 변환합니다.

"자동"에 대해서는 잘 모르지만 파일의 확장자 또는 비슷한 것이 텍스트 파일인지 여부를 결정하고 적절한 모드를 추측하려고합니다.

원하는 모드는 파일을 사용하여 수행하는 작업에 따라 다릅니다. 파일을 백업하기 위해 복사하는 경우 바이너리 모드로 복사하여 파일이 정확히 똑같을 수 있습니다. 나중에 Windows 서버로 다시 복원하십시오. 양쪽에서 텍스트 파일 (예 : 크로스 플랫폼 프로그램의 구성 파일)로 사용할 수 있어야하는 경우 ASCII 모드를 사용하여 번역해야합니다.

편집 : 내가 알 수있는 한 Windows에서 Linux로 FTP 파일을 보내면 줄 바꿈이 사라지지 않아야합니다 ... 그러나 ASCII 모드로 복사 한 다음 Linux를 이진 모드로 Windows 서버 로 가져 오면 Linux 스타일 상자 끝은 Windows 상자에서 인식되지 않을 수 있습니다. (메모장은 표시되지 않습니다. 워드 패드는 YMMV (다른 소프트웨어 포함)입니다.)

(오늘날 줄 끝을 자동으로 변환하는 것과 같은 편의성은 FTP와 같은 기본 프로토콜에서 이상하게 보일 수 있습니다. 그러나 FTP가 발명되었을 때 텍스트 파일을 보내는 것이 표준이었고 프로토콜의 목표 중 하나는 가능한 한 쉽게)


둘 다에 대한 훌륭한 설명. 나는 지금 훨씬 혼란스러워합니다.
Sampson

나는 그 ASCII 모드의 요점을 절대로 이해하지 못했고, 이제 바이너리 모드만을 사용할 것이다
Kiwy

3

실제로 차이점이 있으며 바이너리 옵션을 사용하지 않으면 일반 텍스트가 아닌 파일 전송으로 엉망이됩니다. 일반적으로 ok 인 경우 항상 사용하십시오 :)


복원 할 방법이 없습니까? 아니면 나중에 이것을 다시 피하기 위해 지금 바이너리로 간단히 옮겨야합니까?
Sampson

선택을 취소 할 수는 있지만 시간이 오래 걸릴 수 있으므로 다시 전송하려는 유혹이 있습니다.
Chopper3

1

파일을주고받는 운영 체제는 무엇입니까? Linux / Unix는 Windows와 다른 줄 바꿈을 사용합니다. 따라서 Linux 컴퓨터에서 파일을 생성하고 Windows에서 파일을 열면 이상하게 보일 수 있습니다. 메모장 대신 Windows에서 워드 패드를 사용하는 경우 내 경험으로는이를 수정하는 유틸리티가 있습니다.


IDE의 Windows에서이를 작성하고 Linux 서버로 옮깁니다. 나중에 리눅스 서버에서 열어서 긴 연속 선을 찾습니다.
Sampson

달리기를 시도 dos2unix하고 그것이 줄을 수정하는지 확인하십시오
einstiien

1

Windows와 Unix는 줄 끝에서 다른 바이트를 갖습니다 (Windows 0D 0A 16 진수, Unix는 0A). 이진 모드로 파일을 전송할 때 파일의 바이트는 한 컴퓨터에서 변경되지 않고 이동합니다. 이진 형식 (예 : ZIP 파일, 이미지 등)에 필요하지만 텍스트 파일에 문제가 발생할 수 있습니다. Windows 스타일을 볼 때 모든 줄 끝에 ^ M이 표시 될 수 있습니다.

따라서 기술적으로 이진 형식 (zip, jpg, png 및 끝없는 기타)의 경우 FTP를 BINARY로 설정해야하고 텍스트 형식 (HTML, PHP, CGI 등)의 경우 ASCII로 설정해야합니다.

대부분의 좋은 FTP 프로그램은 자동 설정을 가지고 있습니다. 즉, 잘 알려진 파일 확장자에 따라 모드 (BINARY 또는 ASCII)를 결정합니다. 예를 들어 JPG 파일의 전송을 BINARY로 자동 전환하고 ASCII로 PHP 파일을 보내거나받습니다. 방법.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.