커피닉스, 시스템 엔지니어의 쉼터
  퍼미션, 소유자, 파일 시간을 똑같이 다른 파일에 적용하기 작성일 : 2016/07/05 17:30
 
  • 글쓴이 : 좋은진호 ( http://coffeenix.net/ )
  • 조회수 : 6356
     
    제  목 : 퍼미션, 소유자, 파일 시간을 똑같이 다른 파일에 적용하기
    작성자 : 좋은진호(truefeel, http://coffeenix.net/ )
    작성일 : 2016.7.5(화)

    A라는 파일이 있다. A 파일 내 문자열을 변환 후 B라는 파일로 저장했다.

     
    -rw-------.  1 root root 4529 12월 29  2013 A
    -rw-r--r--.  1 root root 4535  7월  5 13:19 B
     


    B라는 새로운 파일로 저장했을 때 바뀌는 것은 퍼미션, 소유자(경우에 따라서), 그리고 파일 날짜. 이렇게 3개다. 이 3가지를 원래 파일과 동일하게 맞추고 싶다. 그리고 파일명도 B에서 원래대로 A로 바꾸려고 한다.

    1. 리눅스에서

     
    chmod --reference=$ORIG $TEMP      # 퍼미션 원래대로
    chown --reference=$ORIG $TEMP      # 소유자 원래대로
    touch -r $ORIG $TEMP         # 날짜   원래대로
    mv $TEMP $ORIG            # 파일명 원래대로
     


    2. FreeBSD에서

    2가지 방법이 있다.

    1) GNU coreutils를 설치해서

      FreeBSD의 chmod, chown는 coreutils가 아니라서 리눅스에서 사용하는 옵션이 없다. coreutils 패키지를 설치하면 리눅스와 동일하게 사용할 수 있다.

     
    # pkg install coreutils
     


      chmod, chown 대신 gchmod, gchown 명령을 한다.

    2) stat 명령으로

    파일의 상태 정보를 추출하는 stat명령으로 원래 파일의 퍼미션과 소유자를 알아낸 후 변경된 파일에 적용한다.

     
    chmod $(stat -f %Lp   $ORIG) $TEMP   # 퍼미션 원래대로
    chown $(stat -f %u:%g $ORIG) $TEMP   # 소유자 원래대로
    touch -r $ORIG $TEMP         # 날짜   원래대로
    mv $TEMP $ORIG            # 파일명 원래대로
     



    커피닉스, 시스템 엔지니어의 쉼터 / URL : http://coffeenix.net/board_view.php?bd_code=1792