तो गूंगा मुझे ढाल के साथ फ़ोल्डर में वीडियो फ़ाइलों का एक गुच्छा ले जाने के प्रयास में मेरे 19.04 सर्वर पर निम्न स्क्रिप्ट का उपयोग करता है:
dirs=(A B C D E F G H I J K L M N O P Q R S T U V W X Y Z)
shopt -s nocasematch
for file in *
do
for dir in "${dirs[@]}"
do
if [ -d "$file" ]; then
echo 'this is a dir, skipping'
break
else
if [[ $file =~ ^[$dir] ]]; then
echo "----> $file moves into -> $dir <----"
mv "$file" "$dir"
break
fi
fi
done
done
कोई सुराग नहीं जहां यह गलत हुआ, लेकिन फाइलों को फ़ोल्डर्स में ले जाने के बजाय यह एक विलक्षण आउटपुट में चला गया .. इसलिए:
----> a1.ts moves into -> A <----
----> a2.ts moves into -> A <----
----> a3.ts moves into -> A <----
----> a4.ts moves into -> A <----
----> a5.ts moves into -> A <----
----> c1.ts moves into -> C <----
----> c2.ts moves into -> C <----
----> c3.ts moves into -> C <----
----> c4.ts moves into -> C <----
----> c5.ts moves into -> C <----
मैंने सौभाग्य से इस प्रक्रिया को बंद कर दिया (CTRL + C) जैसे ही मैंने देखा कि यह इरादा नहीं था और पूरे फ़ोल्डर में नहीं गया।
तो अब मैं उन फ़ाइलों को मिल गया है Aऔर Cहै, जो एक जीबी की तुलना में कम कर रहे हैं, और यह दिखता द्वारा एक वीडियो है।
फ़ोल्डर के कुल डिस्क उपयोग के लिए 50Gb बेहिसाब हैं, लेकिन कंप्यूटर का समग्र डिस्क स्थान एक ही रहा है। मुझे लगता है कि फ़ाइलें नष्ट नहीं कर रहे हैं?
किसी भी मदद की सराहना की, धन्यवाद :)
संपादित करें: फ़ाइलें वास्तव में चली गई हैं, केवल अंतिम फ़ाइल लिखी जानी बाकी है, डिस्क को अद्यतन करने के लिए जानकारी का उपयोग करने के लिए कुछ समय लग गया था .. कहानी का नैतिक, इससे पहले अपनी फाइलों को नकली फाइलों पर चलाएं!
mv "$file" "$dir/"एक अनुगामी के साथ उपयोग करें /; तो अगर $dirमौजूद नहीं है, mvनाम बदलने के बजाय त्रुटि जाएगा $fileकरने के लिए $dir। भी विचार mv -iऔर mv -n। और हमेशा एक mkdir -pउपाय करने से पहले, अच्छे उपाय के लिए।
A,Bइत्यादि? यदि आप फ़ाइलों का नाम नहीं बदला है। वे सभी फाइलें जिनका नाम शुरू हुआ थाaया जिनका नामAबदल दिया गया थाA, इसलिए केवल अंतिम नामांकित फ़ाइल बच गई, अन्य को अधिलेखित कर दिया गया। एक चर को कॉल करने केdirलिए एक निर्देशिका नहीं बनाता है!