Ich habe ein Verzeichnis, das mehr als tausend Bilder enthält. Ich möchte die Dateien in mehrere Unterverzeichnisse aufteilen, die jeweils 100 Dateien enthalten. Wie mache ich das?
Ich habe ein Verzeichnis, das mehr als tausend Bilder enthält. Ich möchte die Dateien in mehrere Unterverzeichnisse aufteilen, die jeweils 100 Dateien enthalten. Wie mache ich das?
Antworten:
Folgendes hat bei mir gut funktioniert. Öffnen Sie das Verzeichnis im Terminal, kopieren Sie das folgende Skript und fügen Sie es ein. Drücken Sie die Eingabetaste. Unterverzeichnisse werden mit den Namen dir_001, dir_002 usw. erstellt.
i=0;
for f in *;
do
d=dir_$(printf %03d $((i/100+1)));
mkdir -p $d;
mv "$f" $d;
let i++;
done
Dadurch werden Sie aufgefordert, die Anzahl der gewünschten Verzeichnisse und das Präfix des Unterverzeichnisses anzugeben. Der Befehl ls ist nur eine Erinnerung daran, wie viele Dateien Sie haben.
ls -1 | wc -l
read -p 'How Many Directories: ' F;
read -p 'Sub-Directories Prefix: ' S;
PARRENT=${PWD}
# cd $PARRENT
n=0
for i in *
do
if [ $((n+=1)) -gt $F ]; then
n=1
fi
todir=$PARRENT/"$S"_$n
[ -d "$todir" ] || mkdir "$todir"
mv "$i" "$todir"
done