강좌 & 팁
리눅스로 개발을 하다 보면 프로젝트 파일이 커져서 다른 곳으로 이동시키거나 백업을 하게 되죠
문제는 유저 권한으로 작업을 하다가 일부 파일의 경우 root 권한으로 반드시 작업할 것들이 있죠
루트 파일 시스템이 대표적인데 그러한 파일들이 섞여 있을 경우 su 권한으로 복사를 하면
일반 파일들도 모두 root 권한이 되어 버리기 때문에 매우 골치 아픕니다.
속성을 그대로 해주는 방법등이 있지만 한 프로젝트 파일내에 섞여 있을 경우 난감하죠
cp 옵션중에 p 옵션이나 preserve 옵션으로 해결이 되지 않더군요
한 디렉토리내에 user 권한과 root 권한 파일 특히 디렉토리가 있을 경우 그대로 복사가 안되구요
tar 를 pipe 를 써서 복사하는 방법인
tar cf - xxx | (cd yyy; tar xf -) 의 경우... 디렉토리 권한이 안바뀝니다... ㅠㅠ
그래서 좀 무식하게 해결한것이 tar 압축을 하고 다시 푸니 되더군요
옵션은 아래와 같이 합니다.
sudo tar cpf xxxx.tar.gz 디렉토리
sudo tar xpf xxxx.tar.gz
위와 같이 하시면 압축을 푼후에 서브 디렉토리의 권한등이 모두 동일하게 복사됩니다.
대신 디스크 용량이 여유가 있으셔야 하겟죠?
조금 편하게 쓰려고 제가 쓰는 스크립트입니다.
해석은... 알아서...
for i in * ; do
echo $i
sudo tar cpf $1/$i.tar.gz $i
cd $1
sudo tar xpf $i.tar.gz
sudo rm $i.tar.gz
cd -
done