심볼릭 링크를 남기고 파일을 이동하는 방법은 무엇입니까?


9

움직일 수있는 방법 /를의 심볼릭 링크를 떠나, 다른 하나의 디렉토리에서 파일을 복사 할 원본 디렉토리 . ln -s대상에서 심볼릭 링크를 만드는 것을 알고 있지만 심볼릭 링크를 소스 디렉토리에두고 실제 파일을 새 파일로 옮기고 싶습니다. 어떻게해야합니까?


이 질문에 대한 최고의 대답은 여기에 있습니다 : unix.stackexchange.com/a/228166/7000
스리 Sarnobat

답변:


4

파일을 개별적으로 처리합니다 (예 :

cd $original_directory  
for i in <files to process> ; do  
    mv ./$i $new_directory/  
    ln -s $new_directory/$i ./$i
done

또는 복사하는 경우 mv명령 행을

    cp ./$i $new_directory/  
    rm ./$i   

1
cp / rm 버전-가능한 이점은 무엇입니까? 그것은 훨씬 느리게 같은 것처럼 보입니다 :)
Sergey

@Sergey One은 종료 상태를 확인하고 cp성공한 경우에만 제거를 진행할 수 있습니다.
lgarzo

@lgarzo : 그 경우에 도움이 될 것입니다 mv복사 파일을 삭제하기 전에 성공했을 경우 확인되지 않았다 -하지만 심각한 버그가 될 것이다 mv:
세르게이

"$ new_directory"및 "<processs to process>" "special variables"인데, 스크립트에 마지막으로 제공하는 인수는 항상 "$ new_directory"로 간주되며 초기 인수는 "<processs to process>"로 간주됩니다. 내가 작성한 다른 스크립트에도 적용됩니까? 아니면 "$ 1"과 "$ 2"를 사용하는 것과 같이 공백을 채워야한다는 것을 의미합니까? 질문에 대해 죄송하지만 일반적으로 코딩에 익숙하지 않습니다.
deox

1
이동하려는 디렉토리를 바꾸고 다음 $original_directory$new_directory같이 설정하십시오 original_directory=/home/walt/from. 스크립트에서 사용하려면 인수를 직접 구문 분석해야합니다. 참고 항목 내장 getopts가을 에서 man bash.
waltinator
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.