내부 파일 또는 디렉토리를 cp 복사하고 제외하는 방법 (rsync –exclude와 동일)

폴더를 다른 위치로 복사하는 명령을 언급하도록 요청하면 거의 모든 사람이 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? ... 헤헤, 아니 😉

더 이상 추가 할 사항이 없습니다.이게 흥미로운 팁인가요? 😀

안부


20 코멘트, 당신의 것을 남겨주세요

코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.

  1.   조롱

    나는이 방법을 몰랐고, 당신은 항상 새로운 것을 배웁니다.
    훌륭한 팁, 감사합니다.

    1.    KZKG ^ 가아라

      고마워.

  2.   크로 토

    팁은 아주 좋습니다, 나는 그것을 몰랐습니다! Arch와 Fedora 사용자에게 ISO의 hehe를 제외한 이유를 설명하는 것입니다.

    1.    KZKG ^ 가아라

      JAJAJAJAJAJA 예제에서는 Deb 배포판 만 복사하려고했기 때문에 Arch와 Fedora ISO를 넣지 않았습니다. HAHAHAHAHA.

  3.   Hexborg

    여기서 우리는 몇 가지 요점을 만들어야합니다. 하나는 bash의 extglob 옵션이 활성화 된 경우에만 작동한다는 것입니다. 그렇지 않은 경우 다음 명령으로 활성화됩니다.

    shopt - extglob

    항상 활성화되도록 .bashrc에 넣을 수 있습니다.

    다른 요점은이 트릭이 cp 명령의 옵션이 아니라 bash 수준에서 작동한다는 것입니다. 이는 모든 명령과 함께 사용할 수 있음을 의미합니다. cp뿐만 아니라. 다음과 같이 작성하여 테스트를 수행 할 수 있습니다.

    echo 파일 : isos /! (archlinux.iso | fedora.iso | chakra.iso)

    그렇지 않으면 매우 유용한 트릭입니다. cp에 대한 -u 옵션과 함께 가끔 유용하다고 생각합니다.

    1.    다니엘 로자 스

      물론입니다. 정규 표현식입니다.

      1.    Hexborg

        실제로 확장 된 패턴입니다. 정규 표현식은 다른 것이지만 그와 비슷합니다. 🙂

    2.    KZKG ^ 가아라

      예, cp의 -u는 정말 흥미 롭습니다. 나는 내가 rsync의 열렬한 팬이라는 것을 인정한다. 그러나 나는 잘 모르겠다. 나는 가난한 cp hahaha에 애착을 가지고있다.

      shopt 활성화에 대해 몰랐습니다. 팁 덕분에 이것이 자동으로 작동한다고 가정했습니다.

      그리고 네, 나는 그것이 cp보다 Bash와 더 관련이 있다고 생각했지만 아직 rm이나 고양이 또는 그런 것을 만들려고 시도하지 않았습니다 :)

      댓글 주셔서 감사합니다. 정말 그렇습니다 😀

      1.    Hexborg

        제 일을 할 수있어 기쁩니다. 🙂

        1.    KZKG ^ 가아라

          사실, 저는 항상 정규 표현식에 대해 배우는 데 관심이있었습니다. ... 흥분하고 그것에 대해 초보 게시물을 올리십니까? 😀

          1.    Hexborg

            LOL !! 당신은 이미 나를 가지고 있습니다. 🙂 코멘트를하지 않고 얼마나 행복했는지… 🙂

            사실은 그가 나를 부르고 있다는 것입니다. 🙂 그러나 나는 그것에 대해 조금 생각해야합니다. 설명하기 어려운 것 같습니다.

            1.    KZKG ^ 가아라

              hahahahaha 아무것도 걱정하지 마세요, 당신은 여전히 ​​배우고 있다는 말을 계속합니다. ahahahaha, 중요한 것은 공유하는 것입니다 😀


  4.   투파 도린

    아주 좋은 팁 새로운 것을 배우지 않고는 절대로 잠자리에 들지 않습니다.

    1.    KZKG ^ 가아라

      정확히, 그리고 무엇보다도 당신이 게시물에 남긴 댓글로 많이 배우는 것입니다. 나는 매일 이상한 것을 배우는 것을 좋아합니다. HAHAHA.

  5.   Giskard

    좋은 속임수. 나는 그를 몰랐다 🙂

    1.    KZKG ^ 가아라

      기쁨 😉

  6.  

    하지만 isos를 넣으면 debian.iso ubuntu.iso /! (기타 등)를 넣는다는 뜻입니까? 아니

  7.   히버

    실제로 그것은 매우 흥미로운 팁으로 밝혀졌습니다. 기사 자체뿐만 아니라 댓글의 부가가치 때문이기도합니다.
    <º Linux의 아름다운 커뮤니티

  8.   마르타 델 포조

    당신의 도움은 저에게 소용이 없었습니다. 학생들이 당신의 훌륭한 기술을 더 잘 이해할 수 있도록 예를 들어야합니다.
    시간을 내 주셔서 감사합니다. 항상이 페이지를 마음 속에 기억하겠습니다.

  9.   felipe016

    디렉토리를 생략한다고했지만 예제에서는 파일 만 생략했습니다. 특정 디렉토리를 생략하는 방법을 알고 있습니까? 문안 인사.