Apakah ada perintah terminal untuk membagi folder menjadi dua?

8

Saya memiliki folder dengan 80.000 file di iMac G5 saya yang menjalankan Ubuntu 12.04.1 dan saya bahkan tidak bisa membukanya dengan Nautilus karena macet.

Saya dapat melakukannya ls -adi Terminal dan itu menunjukkan saya segalanya.

Apakah ada perintah terminal yang bisa saya gunakan untuk membaginya menjadi dua direktori yang berukuran sama (dalam hal jumlah file) sehingga Nautilus akan lebih mudah untuk membuka salah satunya? Atau mungkin 4 folder?

Zanna
sumber
2
Untuk membuka 80.000 file, membaginya dalam 4 folder akan tetap crash nautilus pada powerpc Imac G5! ... Anda dapat mencoba mkdir folder1dan kemudian cp *.txt folder1menyalin setiap txtke folder1dan melakukannya untuk ekstensi seperti cp *.jpg folder2 cp *.doc folder3 cp *.docx folder3. Nautilus seharusnya memiliki pekerjaan yang lebih mudah untuk melihatnya.
blade19899
Lupa menyebutkan semua file dalam format .jpg.
pilih folder dengan shotwell dan biarkan shotwell membuat tanggal folder dan semacamnya
blade19899

Jawaban:

10

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

Sesuaikan head -40000dengan kebutuhan Anda, juga/destination/folder/

Frantique
sumber
1

Coba skrip ini di bawah ini saya menemukannya di Linuxquestions.org

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

silakan ubah nama jalur ini agar sesuai dengan kebutuhan Anda

#!/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…"
blade19899
sumber
1
Terlalu rumit tapi terima kasih atas kerumitannya. Solusi orang lain jauh lebih mudah. Orang-orang perlu melanjutkan hidup mereka, Anda tahu, dan tidak menyia-nyiakannya di depan Terminal. Teknologi seharusnya membantu Anda, bukan menghabiskan waktu Anda ...
@Sergiu juga tidak merusak PC Anda! Solusi lain terlalu sederhana dan saya tidak akan ragu-ragu untuk menganggapnya berbahaya. Lingkaran untuk atau sementara akan bekerja dengan sempurna di sini.
hytromo