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


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.