lftp 및 Transmit (Mac 앱)을 사용하여 FTP 서버에서 백업을 만들었습니다. 모든 것이 정상이지만 1-2 파일의 파일 크기는 다르지만 동일합니다.
첫 번째 파일 :
http://dl.dropbox.com/u/229956/deadcow_seo.php
두 번째 파일 :
http://dl.dropbox.com/u/229956/deadcow_seo.php_2.php
이 두 파일의 차이점은 무엇입니까?
답변
deadcow_seo.php
DOS / Windows 줄 끝 ( ) LF
을 deadcow_seo.php_2.php
사용 하는 반면 Unix 줄 끝 ( )을 사용합니다 CR LF
.
FTP에는 몇 가지 “전송 모드”가 있으며 그 중 두 가지가 일반적으로 사용되는 1 – 이진 ( “이미지”라고도 함) 및 텍스트 (또는 “ASCII”)입니다. “이진”모드에서 파일은 바이트 단위 그대로 전송되지만 “ASCII”는 파일이 텍스트 줄로 구성된 것으로 해석되도록합니다. – 줄 끝은 CR LF
보낼 때 네트워크 표준으로 변환됩니다. 수신시 기계의 기본 줄 끝으로 변환됩니다.
텍스트로 파일을 전송하면 처음에는 의미가있을 수 있지만 나중에 문제가 발생할 수 있습니다. 실제로 일부 FTP 서버는 파일을 완전히 제거했거나 서버 쪽의 이진 파일과 동일하게 만들었습니다. 또한 대부분의 텍스트 편집기 (메모장 제외)는 Windows 및 Unix 형식의 파일을 읽고 저장할 수 있습니다.
FTP 클라이언트가 항상 이진 모드를 사용하도록 구성하면됩니다. 명령은 보통 bin
또는 mode i
이지만 그래픽 클라이언트는 설정에 확인란 또는 파일 형식 목록이있을 수 있습니다.
1 개 일부 오래된 모드 “TENEX”(있는 긴 오래된, TENEX 페이지 기반의 파일)과 (간단한 RLE 알고리즘으로 정의 할 나타나는) “압축”. 최근 FTP 서버는 zlib 압축에 “모드 z”를 지원합니다.
답변
전송 중 줄 바꿈을 대체 하는 텍스트 (또는 ASCII) 전송 모드를 사용했습니다. 이 기능은 Windows에서 스크립트와 프로그램을 개발하고 파일을 Linux 또는 Mac OS X로 전송할 때 유용합니다. 시스템은 모든 행의 끝에 가비지 데이터가 표시되므로 다른 방식으로는 작동하지 않습니다.
파일에 단일 Windows 줄 바꿈 \r\n
(또는 CRLF
)이 있고 Linux 또는 Mac OS X로 다운로드 한 경우 파일이 (또는 ) \n
( LF
1 바이트 이하) 로 대체되었습니다 . FileMerge를 사용하여 파일을 비교하면 상태 막대에서이를 확인할 수 있습니다.
전송 환경 설정에서 텍스트로 해석되는 파일 형식을 구성 할 수 있습니다.
이 목록에서 모든 파일 확장자를 제거하고 Linux / Mac OS X 줄 바꿈, 즉 \n
Windows를 사용하는 경우에도 표준화 할 수 있습니다 . 대부분의 편집자는 줄 끝 모드를 변경할 수 있습니다.