터미널에서 cp 명령을 사용하는 동안 ".." 복사를 방지하는 방법은 무엇입니까?

터미널에서 cp 명령을 사용하는 동안 ".." 복사를 방지하는 방법은 무엇입니까?

CentOS7을 사용하고 있으며 명령을 사용할 때

cp /root/test/.* /root/test1

..또한 소스의 상위 디렉터리에 있는 모든 파일과 폴더를 복사하는 복사본도 있습니다 .

복사를 피하는 방법 ...?

답변1

복사할지 여부는 질문에 명시 적으로 명시되어 있지 않습니다.오직숨겨진 이름 또는 모든 파일을 복사할지 여부. 마찬가지로 하위 디렉터리의 내용을 복사할지 여부도 마찬가지입니다. 나는 당신이 복사하고 싶다고 가정 할 것입니다오직숨겨진 이름은 현재 디렉터리입니다(명령을 사용하려는 것처럼 보이기 때문입니다).

재귀 복사를 수행하기 위해 -R옵션 cp(또는 -rGNU ) 을 사용하지 않는 한 명령은 상위 디렉토리의 모든 파일을 복사하지 않습니다 . 옵션이 cp없으면 디렉토리 에 대해 불평 하고 복사하지는 않습니다.-Rcp...

셸 에서 셸 변수를 셸이 파일 이름 글로빙 패턴을 확장하지 않을 이름의 -delimited 목록 으로 bash설정합니다 .GLOBIGNORE:

GLOBIGNORE='.:..'

그런 다음 파일을 복사하고

cp /root/test/.* /root/test1

복사 작업을 위해 임시로 설정하려면 GLOBIGNORE하위 셸을 사용하세요.

( GLOBIGNORE='.:..'; cp /root/test/.* /root/test1 )

답변2

.및 를 제외하고 점으로 시작하는 모든 이름을 글로빙하는 표준 관용어 ..입니다 .??*. 그래서 당신의 명령은

cp /root/test/.??* /root/test1

관련 정보