[완료] 리눅스의 쉘 구현하는 중 질문입니다.
글쓴이: ddangkyoung / 작성시간: 월, 2009/04/06 - 9:02오후
쉘에서 파일의 Remove와 Recovery를 구현하려고합니다.
int sign = rename("/mnt/hgfs/input.txt", "/recycle/remove.txt");
이런식으로 해서 input.txt파일을 recycle 폴더로 이름을 remove로 바꿔서 옮기려고 했는데요
Invalid cross-device link
요런 에러가 뜨네요.
검색해봐도 뭔지를 잘 모르겟습니다;'
도와주세요
Forums:
man 2 rename
........
에러
EISDIR newpath는기존 디렉토리이지만, oldpath는디렉토리가 아니다.
EXDEV oldpath와newpath 는 동일한 파일시스템 상에 있지 않는다.
ENOTEMPTY or EEXIST
newpath 는 빈 디렉토리가 아니다. 예를 들어 .와 .. 이상의 내용들을 갖
고 있다.
...........
흐음; 위에 언급해주신것에는 속하는게 없는것 같은데요;
/mnt/hgfs라는 폴더가 존재합니다
그 안에 input.txt 파일도 존재하고요
/recycle이라는 폴더도 존재합니다
물론 그안에는 아무것도 들어있지 않고요
원인을 모르겟네요;
rename은 기본적으로
rename은 기본적으로 동일한 device에서만 처리되는 명령어입니다...
발생하는 에러 그대로 서로 다른 device에 대해 rename을 처리했기 때문에 발생하는 에러입니다.
위와 같은 경우 rename 대신에 mv로 처리하시는게 옳은 경우입니다...
감사합니다
아무래도 원인이
리눅스를 vmware로 돌리고
윈도우와 공유폴더를 만들어서
그 안의 파일을 이용해 rename한게 원인인 것 같네요.
리눅스의 다른 폴더에 파일을 만들고 하니
잘됩니다.
결국 공유폴더로하면 안되는 것인가....OTL
댓글 달기