如果我要你提一個將文件夾複製到另一個位置的命令,幾乎每個人都會提到 cp.
現在,如果我告訴你,此外,您必須複製該文件夾的所有內容(除了1個文件),許多將被遺忘,而其他將提及 rsync的,然後加上參數 -排除 您可以排除X文件或文件夾,而不能複制它。 但是...您知道cp也可以執行此操作嗎? ... O_O …是的朋友, cp 有自己的“排除”呵呵。
例如,我們有一個文件夾 ISO文件 包含: Ubuntu.iso, Debian.iso y archlinux.iso :
碰巧我們想複製到另一個文件夾(發行版,該文件為空) Debian.iso y Ubuntu.iso,即除archlinux.iso之外的所有內容
為此,我們可以手動複製一個文件,然後再复制另一個文件,但是使用系統提供給我們的選項會更聰明,對嗎? ……例如,這樣做:
cp isos/!(archlinux.iso) distros-deb/
這足以將isos目錄中包含的所有內容複製到distros-deb,除了archlinux.iso之外的所有內容
但是,假設我們不僅具有這三個文件,而且還具有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嘿嘿
JAJAJAJAJAJA我沒有放入Arch和Fedora ISO,因為該示例僅嘗試複製Deb發行版……哈哈哈哈。
在這裡,我們必須提出幾點。 一個是只有在啟用了bash的extglob選項的情況下,這才起作用。 如果不是,則使用以下命令激活它:
shopt -s extglob
可以將其放在.bashrc中以使其始終處於激活狀態。
另一點是,該技巧不是cp命令的選項,但它適用於bash級別。 這意味著它可以與任何命令一起使用。 不僅用cp。 您可以通過以下方式進行測試:
echo文件:isos /!(archlinux.iso | fedora.iso | chakra.iso)
否則,這是一個非常有用的技巧。 加上cp的-u選項,我有時也會發現它很有用。
當然,這是一個正則表達式
它實際上是一個擴展模式。 正則表達式是其他東西,但看起來像它。 🙂
是的,cp中的-u真的很有趣。 我承認我是rsync的忠實擁護者...但是我不知道,我對可憐的cp哈哈哈依附。
關於激活購物籃,我不知道,我以為這是自動工作的,謝謝。
是的,我懷疑它與Bash的關係比cp多,但我還沒有嘗試製作rm或cat或類似的東西:)
謝謝你的評論,我真的很😀
盡我所能,這是一種榮幸。 🙂
實際上,我一直對學習正則表達式很感興趣……您是否感到興奮並為此撰寫了新手文章? 😀
大聲笑!! 你已經有了我。 🙂我有多高興沒有評論...🙂
好吧,事實是他在給我打電話。 🙂但是我仍然需要考慮一下。 似乎很難解釋。
哈哈哈哈哈沒事沒關係,你不斷評論說你還在學習哈哈哈哈哈,重要的是分享share
很好的小貼士如果不學習新知識,您永遠上床睡覺。
確實,最重要的是,我從您在帖子中留下的評論中學到了很多東西,我喜歡每天學習奇怪的東西。
好招我不認識他🙂
😉
但是,當您放置isos時,是要放置debian.iso ubuntu.iso /!(等等)嗎? 沒有
實際上,事實證明這是一個非常有趣的技巧。 不僅因為文章本身,還因為評論的附加價值。
<ºLinux的美麗社區
您的幫助對我沒有用,您應該舉一個例子,以便學生更好地理解您的宏偉技巧。
感謝您抽出寶貴的時間,我將永遠記住此頁面
您說您跳過目錄,但是在示例中您僅跳過文件,您知道如何跳過特定目錄嗎? 問候。