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

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

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

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

또한 ..원본 상위 디렉터리의 모든 파일과 폴더를 복사하여 복사합니다.

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

답변1

복사할지 여부에 대한 질문이 명확하지 않습니다.오직이름을 숨기거나 모든 파일을 복사하려는 경우. 마찬가지로 하위 디렉터리의 내용을 복사하려는 경우에도 마찬가지입니다. 나는 당신이 복사하고 싶어한다고 가정합니다오직숨겨진 이름은 현재 디렉터리입니다(명령을 사용하여 이 작업을 수행하려는 것 같으므로).

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

bash셸 에서 GLOBIGNORE셸 변수를 :셸이 파일 이름 와일드카드 패턴을 확장하지 않도록 구분된 이름 목록으로 설정합니다.

GLOBIGNORE='.:..'

그런 다음 파일을 복사하고,

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

GLOBIGNORE복사 작업을 위해 일시적으로 설정하려면 하위 쉘을 사용하십시오.

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

답변2

.표준 관용구는 점으로 시작하는 모든 이름을 와일드카드로 지정하는 ..것입니다 ( 및 제외) .??*. 그래서 당신의 명령은

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

관련 정보