एक अस्थायी निर्देशिका का उपयोग करें, फिर findअपनी सभी फाइलें, सूची के साथ यादृच्छिक करें sort, और सूची के शीर्ष 1000 को अस्थायी निर्देशिका में स्थानांतरित करें। बाकी को हटा दें, फिर अस्थायी निर्देशिका से फ़ाइलों को वापस ले जाएं।
$ mkdir ../tmp-dir
$ find . -type f | sort -R | head -1000 | xargs -I "I" mv I ../tmp-dir/
$ rm ./*
$ mv ../tmp-dir/* .
अगर xargsलाइन की लंबाई के बारे में शिकायत, साथ एक छोटी संख्या का उपयोग headकरें और आवश्यकतानुसार आदेश दोहराने (यानी, परिवर्तन -1000करने के लिए -500करने के लिए और उसे दो बार चलाने के लिए, या परिवर्तन -200और इसे चलाने के लिए 5 बार।)
यह उन फ़ाइलनामों को संभालने में भी विफल होगा जिनमें रिक्त स्थान शामिल हैं; के रूप में @ रालोद के जवाब से पता चलता है, तो आप उपयोग कर सकते हैं findके -print0तर्क, -zतर्क करने के लिए sortऔर head, और -0साथ xargsउचित फ़ाइल नाम से निपटने के लिए सुनिश्चित करें।
अंत में, यदि tmp-dirपहले से मौजूद है, तो आपको एक निर्देशिका नाम बदलना चाहिए जो मौजूद नहीं है।