[英]macOS - Copy all specific filename found in directories to another directory
我想復制所有(在這種情況下)不同目錄中的 mp4、jpg、png 文件。 我會在 macOS 終端中執行此操作。
例如 :
./dir11/dir2/im.png
./dir11/vi.mp4
./dir12/ima.png
./dir12/main.py
./dir12/dir2/infos.txt
./img.jpg
結果:在found/
復制 mp4、jpg 和 png 文件
./found/im.png
./found/vi.mp4
./found/ima.png
./found/img.jpg
您可以使用find
查找不同文件名的列表,然后通過xargs
將其通過管道傳輸到cp
:
find ./looking -type f \( -name "*.mp4" -or -name "*.jpg" \) | xargs cp -t ./found
這會將文件從文件夾./looking
復制到文件夾/found
...
編輯
或者在您的情況下,您可能只想將./looking
替換為./
macOS 的更新版本
由於 macOS cp 不支持-t
。
find . -type f ( -iname "*.log" -or -iname "*.jpg" ) | sed 's/ /\\ /g' | xargs -I '{}' cp '{}' ../test-out
在哪里:
find
部分查找所有名為 *.log 或 *.jpg 的文件(不是文件夾),而不是區分大小寫(-iname 而不是 -name)sed
部分在路徑中的任何空格之前插入一個“\\”xargs
部分使用占位符 ( {}
) 將所有參數放入cp
命令。使用rsync
$ find -E . -regex '.*\\.(jpg|png|mp4)' -exec rsync -avzh {} ./found/ \\;
使用cp
$ find -E . -regex '.*\\.(jpg|png|mp4)' -exec cp {} ./found/ \\;
PS - 不確定哪個更有效。 我通常更喜歡rsync
的副本和移動。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.