¿Hay un comando de terminal para dividir una carpeta en dos?

8

Tengo una carpeta con 80,000 archivos en mi iMac G5 con Ubuntu 12.04.1 y ni siquiera puedo abrirla con Nautilus porque se congela.

Puedo hacerlo ls -aen la Terminal y me muestra todo.

¿Existe un comando de terminal que pueda usar para dividirlo en dos directorios de igual tamaño (en términos de número de archivos) para que Nautilus pueda abrir uno de ellos con mayor facilidad? O tal vez 4 carpetas?

Zanna
fuente
2
Para abrir 80.000 archivos, dividida en 4 carpetas todavía Nautilus accidente en un PowerPC G5 Imac! ... Usted podría intentar mkdir folder1y luego cp *.txt folder1copiar todos los txtque folder1y hacerlo por extensiones como cp *.jpg folder2 cp *.doc folder3 cp *.docx folder3. Nautilus debería tener un trabajo más fácil para verlos entonces.
blade19899
Olvidé mencionar que todos los archivos están en formato .jpg.
seleccionar la carpeta con Shotwell Shotwell y dejar que crear la carpeta de fechas y tal
blade19899

Respuestas:

10

ls -1 | sort -n | head -40000 | xargs -i mv "{}" /destination/folder/

Ajuste head -40000para satisfacer sus necesidades, también/destination/folder/

Frantique
fuente
1

Pruebe este script a continuación, lo encontré en Linuxquestions.org

PhotosPath="/media/4GBSD/DCIM/101CANON"
SortPath="/home/angus/.imagesort"
LibraryPath="/home/angus/Photos"
CameraPath="/media/4GBSD"

cambie el nombre de esta ruta para que se ajuste a sus necesidades

#!/bin/bash
#
#
PhotosPath="/media/4GBSD/DCIM/101CANON"
SortPath="/home/angus/.imagesort"
LibraryPath="/home/angus/Photos"
CameraPath="/media/4GBSD"
CharFromName=4
echo 
echo 
############
# Test to see if $PhotosPath exists, if not promp for new path / exit.
test -d $PhotosPath || read -p "$PhotosPath does not exist, close to exit or type new path:" PhotosPath
test -d $PhotosPath || "read -p '$PhotosPath is invalid. Press enter to close' && exit"

############
# move files from camera to $SortPath
mv $PhotosPath/* $SortPath/

############
# rename all image files in $SortPath
# FolderDateDD-HHMMSS.ext
jhead  -autorot -ft -nf%y%m%d-%H%M%S $SortPath/*

###########
# Sort files into folders using $CharFromName letters of the file name
#
ls $SortPath | while read file; do
 # extract first $CharFromName characters from filename
 FolderDate=${file:0:$CharFromName}
 # create directory if it does not exist
 test -d $LibraryPath/$FolderDate || mkdir $LibraryPath/$FolderDate
 # move the current file to the destination dir
 mv -v $SortPath/$file $LibraryPath/$FolderDate/$file
done

##########
# move sorted files into photo library
#mv -v $SortPath/* $LibraryPath/ 

##########
# Umount the card
umount $CameraPath

##########
# End notification
echo 
echo "Photos  from: $PhotosPath"
echo "End location: $LibraryPath"
echo 
echo "The card has been ejected."
echo 
read -p "Press enter to close this window…"
cuchilla19899
fuente
1
Demasiado complicado pero gracias por la molestia. La solución de los otros chicos es mucho más fácil. La gente necesita seguir adelante con sus vidas, y no desperdiciarla frente a una Terminal. La tecnología se supone que te ayude, no come todo su tiempo ...
@Sergiu ni tampoco para destruir tu pc! La otra solución es demasiado simple y no dudaría en caracterizarla como peligrosa. Un bucle for or while haría perfectamente aquí.
hytromo