rsync Secure Copy (SCP)


둘의 차이는 뭘까?



두개 다 원격 파일 전송이라는 공통점은 있지만 왜 다르게 쓸까? 

그 이유는 옵션의 차이도 있겠지만 무엇보다 symbolic link 를 처리하는데 차이가 있다. 


scp는 전송하려 하는 파일중에 symbolic link 가 있다면 링크된 원본파일이 전송된다. 

즉, symlink 가 유지 되지 않는다.

ln(Link)                                                                                                               

i-node는 파일의 생성과 동시에 임의로 부여되며,  번호확인은 ls -i 로 확인할 수 있다. 또한  리눅스에서는 모든 디 

  바이스나 디렉토리를 파일개념으로 인식하기 때문에 전부 inode를 부여받는다.  만약 inode가 같은 파일이 있다면   

  파일 이름이 다르더라도 이 파일은 같은 파일이 된다.

* 하나의 특정한 파일을 다른 파일 이름으로도 사용하고자 할 때 사용                                                      

* cp명령은 원본 파일의 내용을 바꾸어도 복사된 파일의 내용이 그대로 있는데                                              

   ln명령은 원본 파일의 내용을 바꾸면 링크된 파일의 내용도 바뀜                                                       

* 링크된 파일의 어느 한 파일을 수정하면 링크된 다른 파일 모두가 수정됨                                                 

* 특정 파일이 ln멸령으로 생성된 다른 파일에 관계없이 실제로는 하나의 파일만 존재하는 것을 의미                         

* 링크를 부여하는 방법으로는 하드링크와 심볼릭링크가 있음                                                              

* 일반적으로 사용자들이 주로 사용하는 링크는 심복릭링크이며, 윈도우의 바로가기 아이콘도 심볼릭링크                     

                                                                                                                       

하드링크(Hard Link)                                                                                                    

* 하드 링크는 일반 파일을 링크할 때 주로 이용하며, 옵션없이 ln 명령으로 링크시키면 된다. 생성된 링크 파일은 원     래 파일의 inode(index node라 하며 파일에 대한 정보가 저장된 레코드)를 그대로 참조하기에 원 파일이 지워져도    아무런 문제가 되지 않는다.

* 하나의 파일에 여러 개의 이름을 부여하는 것                                                                           

* 같은 파일을 이름만 다르게 부르는 것                                                                                  

* 원본 파일과 같은 데이터 파일을 공유                                                                                  

* 원본 파일의 이름이 바뀌어도 사용이 가능                                                                              

* 파일을 없애려면 링크로 생성된 링크 파일을 모두 지워야 함                                                             

* 다른 파일 시스템 간에는 링크를 할 수 없음                                                                            

*사용방법 : $ln(원본파일명)(대상파일명)                                                                                

                                                                                                                       

심볼릭링크(Symbolic Link)                                                                                              

* 심볼릭 링크는 주로 디렉토리를 링크할 때 사용한다. 원 파일이 삭제되면 실제 데이터 블럭을 참조하던 inode도 삭      제되어, 심볼릭 링크된 파일은 의미가 없어진다.

* 윈도우 운영체제의 '바로가기 아이콘'과 유사                                                                           

* 링크로 생성된 파일에 내용은 존재하지 않으며, 각각의 i-node를 가진 또 다른 파일이 어디를 가리키고 있는지 알려주는 역할

* 하드링크와는 다르게 링크를 다른 곳으로 이동시키면 링크가 깨져서 사용을 하지 못함                                     

* 다른 파일 시스템 간에 생성할 수 있어 다른 파티션에 링크 파일을 생성 가능                                             

* 원본파일 이름이 바뀌면 사용하지 못함                                                                                 

*사용방법 : $ln -s(원본파일명)(대상파일명)



Usage: ln [OPTION]... [-T] TARGET LINK_NAME   (1st form)

  or:  ln [OPTION]... TARGET                  (2nd form)

  or:  ln [OPTION]... TARGET... DIRECTORY     (3rd form)

  or:  ln [OPTION]... -t DIRECTORY TARGET...  (4th form)

In the 1st form, create a link to TARGET with the name LINK_NAME.

In the 2nd form, create a link to TARGET in the current directory.

In the 3rd and 4th forms, create links to each TARGET in DIRECTORY.

Create hard links by default, symbolic links with --symbolic.

When creating hard links, each TARGET must exist.

긴 옵션에서 꼭 필요한 인수는 짧은 옵션에도 꼭 필요합니다.

      --backup[=CONTROL]      make a backup of each existing destination file

  -b                          like --backup but does not accept an argument

  -d, -F, --directory         allow the superuser to attempt to hard link

                                directories (note: will probably fail due to

                                system restrictions, even for the superuser)

  -f, --force                 remove existing destination files

  -n, --no-dereference        treat destination that is a symlink to a

                                directory as if it were a normal file

  -i, --interactive           prompt whether to remove destinations

  -s, --symbolic              make symbolic links instead of hard links

  -S, --suffix=SUFFIX         override the usual backup suffix

  -t, --target-directory=DIRECTORY  specify the DIRECTORY in which to create

                                the links

  -T, --no-target-directory   treat LINK_NAME as a normal file

  -v, --verbose               print name of each file before linking

      --help     이 도움말을 표시하고 끝냅니다

      --version  버전 정보를 출력하고 끝냅니다


The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.

The version control method may be selected via the --backup option or through

the VERSION_CONTROL environment variable.  Here are the values:

none, off       never make backups (even if --backup is given)

numbered, t     make numbered backups

existing, nil   numbered if numbered backups exist, simple otherwise

simple, never   always make simple backups



+ Recent posts