[英]Take limited files from directory and insert them into another directory
我的目錄包含80.000個圖像 ,我想使用Bash命令將該目錄中的30.000個圖像隨機插入另一個目錄。
假設您位於80000張圖片所在的目錄中,而另一個目錄稱為target,則此目錄應該有效:
ls | shuf | head -n 30000 | xargs -i cp "{}" target/.
盡管提供的答案正確, shuf
不是在所有系統上都安裝了shuf
因此您可以考慮使用sort -R
。 我引用手冊頁:
按隨機順序排序。 這是輸入的隨機排列,除了相等的鍵排序在一起。 它通過對輸入鍵進行哈希處理並對哈希值進行排序來實現。 哈希函數是隨機選擇的。 哈希函數由/ dev / random內容隨機分配,如果由--random-source指定,則按文件內容隨機分配。 即使指定了多個排序字段,也對所有它們使用相同的隨機哈希函數。
只要您沒有任何重復項(名稱完全相同,只是文件名不同),並且您不想安裝shuf
或任何其他工具,就可以使用它來進行“隨機”排序。
ls | sort -R | tail -n 30000 | xargs -I "{}" cp "{}" ./target
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.