簡體   English   中英

從目錄中提取有限的文件,然后將其插入另一個目錄

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM