Nếu tôi yêu cầu bạn đề cập đến lệnh sao chép một thư mục sang một vị trí khác, hầu như mọi người sẽ đề cập đến cp.
Bây giờ, nếu tôi nói với bạn rằng ngoài ra, bạn phải sao chép tất cả nội dung của thư mục đó ngoại trừ 1 tệp, nhiều người sẽ bị suy nghĩ và những người khác sẽ đề cập rsync, sau đó với tham số -Loại trừ bạn có thể loại trừ tệp hoặc thư mục X và không sao chép nó. Nhưng ... bạn có biết rằng cp cũng cho phép bạn làm điều này? ... O_O … Vâng, thưa các bạn, cp có "loại trừ" riêng của nó hehe.
Ví dụ, chúng tôi có thư mục iso chứa: Ubuntu.iso, debian.iso y Archlinux.iso :
Và nó xảy ra rằng chúng tôi muốn sao chép vào thư mục khác (bản phân phối-deb, đang trống) tệp debian.iso y Ubuntu.iso, nghĩa là, tất cả ngoại trừ Archlinux.iso
Đối với điều này, chúng ta có thể sao chép một tệp và sau đó một tệp khác, theo cách thủ công, nhưng sẽ thông minh hơn nhiều nếu sử dụng các tùy chọn mà hệ thống cung cấp cho chúng ta, phải không? … 😀… ví dụ, để làm điều này chỉ cần:
cp isos/!(archlinux.iso) distros-deb/
Và điều này là đủ để sao chép MỌI THỨ có trong thư mục isos sang distros-deb, mọi thứ ngoại trừ Archlinux.iso 😉
Nhưng giả sử chúng ta không chỉ có 3 tệp đó, mà chúng ta còn có fedora.iso và chakra.iso ... và chúng tôi muốn làm như vậy, nó cũng sẽ bị loại trừ khỏi bản sao fedora.iso và chakra.iso, hãy xem cách thực hiện:
cp isos/!(archlinux.iso|fedora.iso|chakra.iso) distros-deb/
Như bạn có thể thấy, một số tệp hoặc thư mục có thể bị loại trừ, chúng tôi chỉ tách chúng bằng một đường ống (|) và vấn đề đã được giải quyết 😀
Bởi điều này, tôi không có nghĩa là cp tốt hơn cho mọi thứ so với rsync ... nhưng, cả hai đều là những công cụ tuyệt vời, chẳng hạn ... bạn có biết tham số -u de cp? ... hehe, chắc chắn là không 😉
Chà, không cần thêm gì nữa ... đây có phải là một mẹo thú vị không? 😀
Liên quan
Tôi không biết phương pháp này, bạn luôn học được điều gì đó mới.
Mẹo tuyệt vời, cảm ơn.
thanks
Mẹo là rất tốt, tôi đã không biết nó! Nó chỉ còn lại để giải thích cho người dùng Arch và Fedora tại sao bạn loại trừ iso của họ hehe
JAJAJAJAJAJA Tôi không đặt các ISO của Arch và Fedora vì ví dụ đã cố gắng sao chép chỉ các bản phân phối Deb ... HAHAHAHAHA.
Ở đây chúng ta phải làm cho một vài điểm. Một là điều này chỉ hoạt động nếu tùy chọn extglob của bash được bật. Nếu không, nó được kích hoạt bằng lệnh này:
shopt -s extglob
Nó có thể được đặt trong .bashrc để luôn kích hoạt nó.
Điểm khác là thủ thuật này không phải là một tùy chọn của lệnh cp, nhưng nó hoạt động ở mức bash. Có nghĩa là nó có thể được sử dụng với bất kỳ lệnh nào. Không chỉ với cp. Bạn có thể làm bài kiểm tra bằng cách viết:
echo Các tập tin: isos /! (Archlinux.iso | fedora.iso | chakra.iso)
Nếu không thì đó là một thủ thuật rất hữu ích. Cùng với tùy chọn -u cho cp, tôi cũng thấy hữu ích theo thời gian.
Chắc chắn, đó là một biểu thức chính quy
Nó thực sự là một mô hình mở rộng. Biểu thức chính quy là một cái gì đó khác, nhưng nó trông giống như vậy. 🙂
Vâng, -u trong cp thực sự rất thú vị. Tôi thừa nhận rằng tôi là một fan hâm mộ lớn của rsync ... nhưng tôi không biết, tôi có chấp trước cp kém hahaha.
Về việc kích hoạt shopt, tôi không biết, tôi cho rằng điều này hoạt động tự động, cảm ơn mẹo.
Và vâng, tôi đã nghi ngờ nó liên quan nhiều đến Bash hơn là cp, nhưng tôi chưa thử làm một con mèo hoặc một con mèo hoặc một cái gì đó tương tự :)
Cảm ơn vì đã nhận xét, tôi thực sự làm được 😀
Đó là một niềm vui để làm bit của tôi. 🙂
Trên thực tế, tôi luôn quan tâm đến việc tìm hiểu về biểu thức chính quy ... bạn có hào hứng và đăng một bài mới về nó không? 😀
CƯỜI LỚN!! Bạn đã có tôi. 🙂 Thật hạnh phúc khi không có bình luận……
Sự thật là anh ấy đang gọi cho tôi. 🙂 Nhưng tôi vẫn phải suy nghĩ về nó một chút. Nó có vẻ khó giải thích.
hahahahaha không có gì đừng lo, bạn cứ comment là mình còn học được ahahahaha, quan trọng là chia sẻ thôi 😀
Mẹo rất hay Bạn sẽ không bao giờ đi ngủ mà không học một điều gì đó mới.
Chính xác, và tuyệt vời nhất là tôi học được rất nhiều điều với những nhận xét của các bạn trên các bài viết, tôi thích học những điều lạ mỗi ngày HAHAHA.
Mẹo hay. Tôi không biết anh ta 🙂
Rất hân hạnh 😉
Nhưng khi bạn đặt isos, bạn có nghĩa là đặt debian.iso ubuntu.iso /! (V.v.)? Không
Quả thực nó hóa ra là một mẹo rất thú vị. Không chỉ vì bản thân bài báo, mà còn vì giá trị gia tăng của các bình luận.
Cộng đồng tuyệt đẹp của <º Linux
Sự giúp đỡ của bạn không có ích gì đối với tôi, bạn nên đưa ra một ví dụ để các học viên hiểu rõ hơn về kỹ thuật tuyệt vời của bạn.
Cảm ơn bạn đã dành thời gian, tôi sẽ luôn ghi nhớ trang này trong trái tim tôi
bạn nói rằng bạn bỏ qua các thư mục, tuy nhiên trong các ví dụ bạn chỉ bỏ qua các tệp, bạn có biết cách bỏ qua một thư mục cụ thể không? Trân trọng.