Gdybym poprosił Cię o wspomnienie polecenia skopiowania folderu do innej lokalizacji, prawie każdy by o tym wspomniał cp.
Teraz, jeśli powiem ci, że dodatkowo musisz skopiować całą zawartość tego folderu z wyjątkiem 1 pliku, wielu by pomyślało, a inni wspominają rsync, a następnie z parametrem -Wykluczać możesz wykluczyć plik lub folder X i nie kopiować go. Ale ... czy wiesz, że cp pozwala ci to zrobić? ... O_O … Tak przyjaciele, cp ma swoje własne „wykluczenie” hehe.
Na przykład mamy folder isos zawierający: ubuntu.iso, debian.iso y archlinux.iso :
A zdarza się, że chcemy skopiować do innego folderu (dystrybucje-deb, który jest pusty) plik debian.iso y ubuntu.isoczyli wszystkie oprócz archlinux.iso
W tym celu moglibyśmy ręcznie skopiować plik, a następnie inny, ale znacznie mądrzej jest skorzystać z opcji, które oferuje nam system, prawda? … 😀… na przykład, aby zrobić to po prostu:
cp isos/!(archlinux.iso) distros-deb/
I to wystarczy, aby skopiować WSZYSTKO zawarte w katalogu isos do distros-deb, wszystko oprócz archlinux.iso 😉
Ale załóżmy, że mamy nie tylko te 3 pliki, ale także fedora.iso i chakra.iso ... i chcemy zrobić to samo, byłoby to również wykluczone z kopii fedora.iso i chakra.iso, zobaczmy, jak to zrobić:
cp isos/!(archlinux.iso|fedora.iso|chakra.iso) distros-deb/
Jak widać, można wykluczyć kilka plików lub folderów, oddzielamy je tylko potokiem (|) i sprawa została rozwiązana 😀
Nie mam przez to na myśli, że cp jest lepsze do wszystkiego niż rsync ... ale oba są doskonałymi narzędziami, na przykład ... czy znasz parametr -u de cp? ... hehe, na pewno nie 😉
Cóż, nic więcej do dodania ... czy to interesująca wskazówka? 😀
pozdrowienia
Nie znałem tej metody, zawsze uczysz się czegoś nowego.
Doskonała wskazówka, dziękuję.
Dziękuję
Wskazówka jest bardzo dobra, nie wiedziałem! Pozostaje tylko wyjaśnić użytkownikom Arch i Fedora, dlaczego wykluczyliście ich iso's hehe
JAJAJAJAJAJA Nie umieściłem plików ISO Arch i Fedory, ponieważ w przykładzie próbowano skopiować tylko dystrybucje Deb ... HAHAHAJAJA.
Tutaj musimy poruszyć kilka kwestii. Po pierwsze, działa to tylko wtedy, gdy włączona jest opcja extglob bash. Jeśli tak nie jest, jest aktywowane tym poleceniem:
shopt -s extglob
Można go umieścić w pliku .bashrc, aby zawsze był aktywowany.
Inną kwestią jest to, że ta sztuczka nie jest opcją polecenia cp, ale działa na poziomie basha. Co oznacza, że można go używać z dowolnym poleceniem. Nie tylko z cp. Możesz zrobić test pisząc:
echo Pliki: isos /! (archlinux.iso | fedora.iso | chakra.iso)
W przeciwnym razie jest to bardzo przydatna sztuczka. Razem z opcją -u dla cp, która również jest przydatna od czasu do czasu.
Jasne, to wyrażenie regularne
W rzeczywistości jest to rozszerzony wzór. Wyrażenie regularne to coś innego, ale na to wygląda. 🙂
Tak, -u w cp jest naprawdę interesujące. Przyznam, że jestem wielkim fanem rsync ... ale nie wiem, mam przywiązanie do kiepskiego cp hahaha.
O aktywacji shopt nie wiedziałem, założyłem, że to zadziałało automatycznie, dzięki za cynk.
I tak, podejrzewałem, że ma to więcej wspólnego z Bashem niż cp, ale nie próbowałem jeszcze robić rm, kota czy czegoś takiego :)
Dzięki za komentarz, naprawdę 😀
Z przyjemnością wykonuję swoją pracę. 🙂
Właściwie zawsze byłem zainteresowany nauką o wyrażeniach regularnych ... czy ekscytujesz się i piszesz o tym dla początkujących? 😀
LOL!! Ty już mnie masz. 🙂 Jak szczęśliwy byłem bez komentarza… 🙂
Cóż, prawda jest taka, że dzwoni do mnie. 🙂 Ale muszę się jeszcze trochę nad tym zastanowić. Trudno to wyjaśnić.
hahahahaha nic się nie martw, ciągle komentujesz, że wciąż się uczysz ahahahaha, ważne jest, aby się dzielić 😀
Bardzo dobra wskazówka Nigdy nie pójdziesz spać bez nauczenia się czegoś nowego.
Dokładnie, a co najważniejsze, wiele się uczę z komentarzy, które zostawiasz pod postami, uwielbiam uczyć się dziwnych rzeczy każdego dnia HAHAHA.
Dobry trik. Nie znałem go 🙂
Przyjemność 😉
Ale kiedy wstawiasz isos, masz na myśli wstawić debian.iso ubuntu.iso /! (Itd.)? Nie
Rzeczywiście okazało się, że to bardzo ciekawa wskazówka. Nie tylko ze względu na sam artykuł, ale także ze względu na wartość dodaną komentarzy.
Piękna społeczność <º Linuksa
Twoja pomoc nie była dla mnie przydatna, powinieneś podać przykład, aby uczniowie mogli lepiej zrozumieć twoją wspaniałą technikę.
Dziękuję za poświęcenie czasu, zawsze będę pamiętać tę stronę w moim sercu
Mówisz, że pomijasz katalogi, ale w przykładach pomijasz tylko pliki, czy wiesz, jak pominąć określony katalog? Pozdrowienia.