"cp -rvf /bin/ ./rmlater/"와 "cp -rvf /bin ./rmlater/"의 차이점은 무엇입니까?

"cp -rvf /bin/ ./rmlater/"와 "cp -rvf /bin ./rmlater/"의 차이점은 무엇입니까?

/bin 전체를 ./rmlater 폴더에 복사하고 싶다고 가정해 보겠습니다.

  • cp -rvf /bin/ ./rmalter내가 원하는 방식으로 작동
  • cp -rvf /bin ./rmalter하지만 방금 소스에 슬래시가 없으면 빈 폴더만 제공된다는 사실을 발견했습니다.
  • 그러나 후행 슬래시 없이 다른 소스 폴더를 시도하면 cp -rvf ./Desktop ./rmlater/여전히 파일이 복사됩니다.
debian$ cp -rvf /bin ./rmlater/
'/bin' -> './rmlater/bin'
debian$ find ./rmlater/
./rmlater/
./rmlater/bin
debian$ rm -rvf rmlater/*
removed 'rmlater/bin'
debian$ cp -rvf ./Desktop ./rmlater/
'./Desktop' -> './rmlater/Desktop'
'./Desktop/chrome_via_proxy.desktop' -> './rmlater/Desktop/chrome_via_proxy.desktop'
'./Desktop/chrome.desktop' -> './rmlater/Desktop/chrome.desktop'
...

그럼 무슨 일인지 말해 줄 사람 있나요?

답변1

/bin에 대한 심볼릭 링크입니다 /usr/bin. /bin뒤에 슬래시가 없는 것은 심볼릭 링크 자체에 해당하고, /bin/뒤에 슬래시가 있는 것은 대상 디렉터리에 해당합니다.

게다가 cp반복할 때 기본적으로 심볼릭 링크를 따르지 않습니다. 그래서

cp -rvf /bin/ ./rmalter

디렉토리(및 그 내용)를 복사하지만

cp -rvf /bin ./rmalter

심볼릭 링크만 복사됩니다.

관련 정보