폴더를 다른 위치로 복사하는 명령을 언급하도록 요청하면 거의 모든 사람이 cp.
이제 추가로 1 개 파일을 제외한 폴더의 모든 내용을 복사해야한다고 말하면 많은 사람들이 생각하고 다른 사람들은 언급 할 것입니다. rsync다음 매개 변수와 함께 -들어오지 못하게 하다 X 파일 또는 폴더를 제외하고 복사 할 수 없습니다. 하지만 ... cp도 이것을 할 수 있다는 것을 알고 있습니까? ... O_O … 네 친구들, cp 자체 "제외"hehe가 있습니다.
예를 들어, 우리는 아이소스 포함 : 우분투.iso, 데비안.iso y 아치리눅스.iso :
그리고 우리가 다른 폴더 (배포판-deb, 비어 있음) 파일 데비안.iso y 우분투.iso즉, archlinux.iso를 제외한 모든 것
이를 위해 파일을 복사 한 다음 다른 파일을 수동으로 복사 할 수 있지만 시스템이 제공하는 옵션을 사용하는 것이 훨씬 더 지능적입니다. … 😀… 예를 들어 이렇게하려면 다음을 수행합니다.
cp isos/!(archlinux.iso) distros-deb/
그리고 이것은 isos 디렉토리에 포함 된 모든 것을 distros-deb에 복사하기에 충분합니다. archlinux.iso 😉
하지만이 3 개의 파일뿐만 아니라 fedora.iso 및 chakra.iso도 있다고 가정합니다. 똑같은 작업을 수행하고 싶다면 fedora.iso 및 chakra.iso 복사본에서도 제외됩니다. 방법 :
cp isos/!(archlinux.iso|fedora.iso|chakra.iso) distros-deb/
보시다시피 여러 파일 또는 폴더를 제외 할 수 있으며 파이프 (|) 문제가 해결되었습니다 😀
이것으로 나는 cp가 rsync보다 모든 것에 더 낫다는 것을 의미하지는 않지만 둘 다 훌륭한 도구입니다. 예를 들어 ... -u de cp? ... 헤헤, 아니 😉
더 이상 추가 할 사항이 없습니다.이게 흥미로운 팁인가요? 😀
안부
나는이 방법을 몰랐고, 당신은 항상 새로운 것을 배웁니다.
훌륭한 팁, 감사합니다.
고마워.
팁은 아주 좋습니다, 나는 그것을 몰랐습니다! Arch와 Fedora 사용자에게 ISO의 hehe를 제외한 이유를 설명하는 것입니다.
JAJAJAJAJAJA 예제에서는 Deb 배포판 만 복사하려고했기 때문에 Arch와 Fedora ISO를 넣지 않았습니다. HAHAHAHAHA.
여기서 우리는 몇 가지 요점을 만들어야합니다. 하나는 bash의 extglob 옵션이 활성화 된 경우에만 작동한다는 것입니다. 그렇지 않은 경우 다음 명령으로 활성화됩니다.
shopt - extglob
항상 활성화되도록 .bashrc에 넣을 수 있습니다.
다른 요점은이 트릭이 cp 명령의 옵션이 아니라 bash 수준에서 작동한다는 것입니다. 이는 모든 명령과 함께 사용할 수 있음을 의미합니다. cp뿐만 아니라. 다음과 같이 작성하여 테스트를 수행 할 수 있습니다.
echo 파일 : isos /! (archlinux.iso | fedora.iso | chakra.iso)
그렇지 않으면 매우 유용한 트릭입니다. cp에 대한 -u 옵션과 함께 가끔 유용하다고 생각합니다.
물론입니다. 정규 표현식입니다.
실제로 확장 된 패턴입니다. 정규 표현식은 다른 것이지만 그와 비슷합니다. 🙂
예, cp의 -u는 정말 흥미 롭습니다. 나는 내가 rsync의 열렬한 팬이라는 것을 인정한다. 그러나 나는 잘 모르겠다. 나는 가난한 cp hahaha에 애착을 가지고있다.
shopt 활성화에 대해 몰랐습니다. 팁 덕분에 이것이 자동으로 작동한다고 가정했습니다.
그리고 네, 나는 그것이 cp보다 Bash와 더 관련이 있다고 생각했지만 아직 rm이나 고양이 또는 그런 것을 만들려고 시도하지 않았습니다 :)
댓글 주셔서 감사합니다. 정말 그렇습니다 😀
제 일을 할 수있어 기쁩니다. 🙂
사실, 저는 항상 정규 표현식에 대해 배우는 데 관심이있었습니다. ... 흥분하고 그것에 대해 초보 게시물을 올리십니까? 😀
LOL !! 당신은 이미 나를 가지고 있습니다. 🙂 코멘트를하지 않고 얼마나 행복했는지… 🙂
사실은 그가 나를 부르고 있다는 것입니다. 🙂 그러나 나는 그것에 대해 조금 생각해야합니다. 설명하기 어려운 것 같습니다.
hahahahaha 아무것도 걱정하지 마세요, 당신은 여전히 배우고 있다는 말을 계속합니다. ahahahaha, 중요한 것은 공유하는 것입니다 😀
아주 좋은 팁 새로운 것을 배우지 않고는 절대로 잠자리에 들지 않습니다.
정확히, 그리고 무엇보다도 당신이 게시물에 남긴 댓글로 많이 배우는 것입니다. 나는 매일 이상한 것을 배우는 것을 좋아합니다. HAHAHA.
좋은 속임수. 나는 그를 몰랐다 🙂
기쁨 😉
하지만 isos를 넣으면 debian.iso ubuntu.iso /! (기타 등)를 넣는다는 뜻입니까? 아니
실제로 그것은 매우 흥미로운 팁으로 밝혀졌습니다. 기사 자체뿐만 아니라 댓글의 부가가치 때문이기도합니다.
<º Linux의 아름다운 커뮤니티
당신의 도움은 저에게 소용이 없었습니다. 학생들이 당신의 훌륭한 기술을 더 잘 이해할 수 있도록 예를 들어야합니다.
시간을 내 주셔서 감사합니다. 항상이 페이지를 마음 속에 기억하겠습니다.
디렉토리를 생략한다고했지만 예제에서는 파일 만 생략했습니다. 특정 디렉토리를 생략하는 방법을 알고 있습니까? 문안 인사.