답변:
고급 cp
cp -r /home/username/A/. /usr/lib/B/
대상 디렉토리가 이미 존재하는지 여부에 관계없이 작동하기 때문에 특히 좋습니다.
쉘 글 러빙
디렉토리에 오브젝트가 너무 많지 않은 경우 쉘 globbing을 사용할 수 있습니다.
mkdir -p /usr/lib/B/
shopt -s dotglob
cp -r /home/username/A/* /usr/lib/B/
rsync
rsync -a /home/username/A/ /usr/lib/B/
/소스 경로의 끝에 중요하다; 대상 디렉토리가 이미 존재하는지 여부에 관계없이 작동합니다.
검색
mkdir -p /usr/lib/B/
find /home/username/A/ -mindepth 1 -maxdepth 1 -exec cp -r -t /usr/lib/B/ {} +
또는 빈 하위 디렉토리가 필요하지 않은 경우 :
find /home/username/A/ -mindepth 1 -type f -exec cp --parents -t /usr/lib/B/ {} +
(없이 mkdir)
A/*은 의미가 있지만 작동하지 않는 상황이 있습니다.
shopt입니다 bash특정. 로 zsh사용 *(D). 와 ksh93, FIGNORE='@(.|..)'. cp -tGNU 전용입니다. find이 모두 복사 할 것 같은 사람은 제대로 작동하지 않습니다 A/여러 번 (하위 디렉토리 포함)의 컨텐츠를.
-maxdepth 1( -mindepth그리고 -maxdepthGNU 확장을 지원하는 다른 사람들도 있습니다. Portably find .../. ! -name . -prune -exec ....)
find .../.여기에 오류가 발생합니다.
에게 cp디렉토리의 내용이 아니라 디렉토리 자체를 복사 :
sudo cp -r /home/username/A/* /usr/lib/B/
shopt -s dotglob에 점 파일이있는 경우이 작업을 수행 해야합니다 /home/username/A/.