![터미널에서 cp 명령을 사용할 때 ".." 복사를 방지하는 방법은 무엇입니까? [복사]](https://linux55.com/image/154707/%ED%84%B0%EB%AF%B8%EB%84%90%EC%97%90%EC%84%9C%20cp%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%A0%20%EB%95%8C%20%22..%22%20%EB%B3%B5%EC%82%AC%EB%A5%BC%20%EB%B0%A9%EC%A7%80%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
CentOS7을 사용하고 있으며 명령을 사용할 때
cp /root/test/.* /root/test1
또한 ..
원본 상위 디렉터리의 모든 파일과 폴더를 복사하여 복사합니다.
복사를 피하는 방법 .
과 ..
?
답변1
복사할지 여부에 대한 질문이 명확하지 않습니다.오직이름을 숨기거나 모든 파일을 복사하려는 경우. 마찬가지로 하위 디렉터리의 내용을 복사하려는 경우에도 마찬가지입니다. 나는 당신이 복사하고 싶어한다고 가정합니다오직숨겨진 이름은 현재 디렉터리입니다(명령을 사용하여 이 작업을 수행하려는 것 같으므로).
재귀 복사를 수행하기 위해 -R
옵션 cp
(또는 -r
GNU )을 사용하지 않는 한 명령은 상위 디렉토리의 모든 파일을 복사하지 않습니다 . cp
이 -R
옵션이 없으면 디렉토리 에 cp
대해 불평 하지만 복사하지는 않습니다..
..
bash
셸 에서 GLOBIGNORE
셸 변수를 :
셸이 파일 이름 와일드카드 패턴을 확장하지 않도록 구분된 이름 목록으로 설정합니다.
GLOBIGNORE='.:..'
그런 다음 파일을 복사하고,
cp /root/test/.* /root/test1
GLOBIGNORE
복사 작업을 위해 일시적으로 설정하려면 하위 쉘을 사용하십시오.
( GLOBIGNORE='.:..'; cp /root/test/.* /root/test1 )
답변2
.
표준 관용구는 점으로 시작하는 모든 이름을 와일드카드로 지정하는 ..
것입니다 ( 및 제외) .??*
. 그래서 당신의 명령은
cp /root/test/.??* /root/test1