Dateien suchen und in Verzeichnissen gruppieren

383
seanbw

Ich habe einen Ordner und Unterordner und eine riesige Anzahl von Dateien wie folgt:

Folder called Movies Sub Folder called "009 - A bad Wolf" Files called " 009 A bad Wolf.avi" Files called " 009 A bad Wolf.txt" Files called " 009 - A bad Wold.nfo" Sub folder A damn Good Film Files > A Very good Film .mp4 Files > A very good Film .nfo Files > A Very good Film.txt Files > American Babe -Estelle Feat Kan Wass.mkv Files > American Babe -Estelle Feat Kan Wass.nfo Files > American Babe -Estelle Feat Kan Wass-poster.jpg Files > American.History.X.1998.Bluray.1080p.DTS-HD-7.1.x264-Grym Sub Folder > Baste - taste . . Files > Baa Baa Sheep.ogg Files > Baa Baa Sheep.nfo Files > Baa Baa Sheep.txt . . Files > Saa Baa Sheep.mp3 Files > Saa Baa Sheep.nfo . Files > Zaa Baa Sheep.flv Files > Zaa Baa Sheep-poster.jpg Files > Zaa Baa Sheep.nfo Files > Zaa Baa Sheep.txt 

Wie kann ich jeden ähnlichen Satz von Dateien in einzelne Verzeichnisse bringen, ohne einzeln durchzugehen? Es gibt 1075 Dateien und Unterordner im Unterordner und 6 Dateien im Hauptordner + den Unterordner. Ich bin total aus meiner Tiefe. Ich weiß, dass ich find und exec verwenden muss, aber wie wird das Verzeichnis mit übereinstimmenden Namen erstellt? dh es sollte so sein:

Folder > Movies Sub Folder > 009 - A bad Wolf with the following files in this sub folder:  Files > 009 - A bad Wolf.avi Files > 009 - A bad Wolf.txt Files > 009 - A bad Wold.nfo Sub folder > A damn Good Film with all the files of same name in this sub folder Sub Folder > A Very good Film with all these files in this sub folder : Files > A Very good Film .mp4 Files > A very good Film .nfo Files > A Very good Film.txt Sub Folder > American Babe -Estelle Feat Kan Wass with all these files of same name in this sub folder: Files > American Babe -Estelle Feat Kan Wass.mkv Files > American Babe -Estelle Feat Kan Wass.nfo Files > American Babe -Estelle Feat Kan Wass-poster.jpg Sub Folder > American.History.X.1998.Bluray.1080p.DTS-HD with files of same name in this sub folder: Files > American.History.X.1998.Bluray.1080p.DTS-HD-7.1.x264-Grym Sub Folder > Baste - taste as above with files of same names in this sub folder . . Sub Folder > Baa Baa Sheep with files of same name in this sub folder: Files > Baa Baa Sheep.ogg Files > Baa Baa Sheep.nfo Files > Baa Baa Sheep.txt . Sub Folder > Saa Baa Sheep with files of same name in this sub folder: Files > Saa Baa Sheep.mp3 Files > Saa Baa Sheep.nfo . Sub Folder > Zaa Baa Sheep with files of same name in this sub folder: Files > Zaa Baa Sheep.flv Files > Zaa Baa Sheep-poster.jpg Files > Zaa Baa Sheep.nfo Files > Zaa Baa Sheep.txt 
2
Wenn sich die von mir vorgestellte Lösung bewährt, bitten wir Sie, die Lösung zu akzeptieren, damit alle wissen, dass sie jetzt für Sie gelöst ist. ejbytes vor 7 Jahren 0
@ ejbytes: Vielen Dank für die vorgeschlagene Lösung, aber es wird nicht funktionieren, da es sich um eine halb manuelle Lösung handelt, bei der ich die Dateien durchgehen und sie manuell identifizieren muss. Was ich brauche, ist ein Skript, das diese Dateien durchgruppiert. Die meisten Lösungen, die ich gesehen habe, sind Gruppen, die auf Erweiterungen basieren, aber ich brauche Gruppierungen basierend auf Namen. Der schwierige Teil ist für mich die Erstellung des neuen Unterverzeichnisses basierend auf dem Namen der gruppierten Dateien. seanbw vor 7 Jahren 0
Verstehen Sie den Begriff "Wildcard" in diesem Sinne? Zum Beispiel "Ich mag Katzen", "Katzen sind hübsch", "Meine Katzen". Der Platzhalter ist das Sternchen *. Sie können es so verwenden, * Katzen, * Katzen *, Katzen *. Manuell ja, weil Sie den Algorithmus entwerfen müssen. Daran führt kein Weg vorbei. Was Sie suchen, ist "ad-hok", was für Ihre Situation einzigartig ist, so dass Sie einige Arbeit in diese Situation investieren müssen. Niemand wird deine Arbeit machen. Wir können Ihnen dabei helfen, einen Weg zu finden, oder Sie helfen Ihnen in Gebieten, in denen Sie Schwierigkeiten haben. ejbytes vor 7 Jahren 0
Die Arbeit macht mir nichts aus. Es ist so, dass die Anzahl der Dateien und Ordner so groß ist, dass es mir nie gelungen ist, Nautilus zum Öffnen des Ordners selbst zu verwenden. Alle meine Versuche, den Ordner "taht" zu öffnen, um die Liste der Dateien anzuzeigen, bringen smy pc zum Stehen. Aus diesem Grund begann ich mit der Suche nach einer Skriptlösung. Ein Teil des Problems besteht darin, dass ich cna verwenden kann, um Dateien mit verschiedenen Erweiterungen aufzulisten. Gibt es eine Suche, um dieselben Namen zu finden? seanbw vor 7 Jahren 0
'Code' finden. \ (-name "* .mp4" -o -name ".avi" -o -name ".mkv" \) '/ code' findet verschiedene Erweiterungen, aber wie kann man dieselben Namen "finden"? Ich bin noch nicht online auf ein solches Skript gestoßen seanbw vor 7 Jahren 0

1 Antwort auf die Frage

1
ejbytes

Es ist ziemlich einfach, diese Aufgabe zu erfüllen, und ich verwende diese Methode ständig.

Navigieren Sie zu dem betreffenden Verzeichnis. Drücken Sie UMSCHALT + Rechtsklick (in einem leeren Abschnitt des Ordners). Wählen Sie "Befehlsfenster hier öffnen". In diesem Verzeichnis wird eine Terminalsitzung geöffnet.

Während Sie sich in diesem Verzeichnis befinden, können Sie die gewünschten Unterordner anlegen, indem Sie entweder Windows, den neuen Ordner usw. verwenden. Oder Sie können die Befehle verwenden:


Verzeichnis erstellen (Ordner erstellen ) > mkdir Ordnername
Verschiebt alle Dateierweiterungen in neue Unterordner (z. B. alle FLV-Dateien)
> mv * .flv ./Foldername

Wenn Sie Dateien mit ähnlichen Titeln verschieben möchten, verwenden Sie einen Befehl auf diese Weise: Das Sternchen (*) ist ein wildes Zeichen. Die Anführungszeichen halten die Zeichenfolge im Takt und halten die Leerzeichen. Ansonsten werden Leerzeichen übersprungen.

> mkdir "baa black sheep"
> mv "baa black" *. * ./"baa black sheep "

Oben:
mv = move
"baa black" * = beginnt mit "baa black" + * (beliebige Zeichenfolge danach)
./ = dieses Verzeichnis
./foldername = der Ordner in diesem Verzeichnis namens Ordnername

mv "baa black" *. * ./"baa black sheep "= Alle Dateien, die mit der Zeichenfolge 'ball black' beginnen, werden in das Verzeichnis 'baa black sheep' verschoben.


Die obigen Bilder sollten Ihnen helfen, dieses Konzept zu verstehen, wenn Sie zum ersten Mal mit der Befehlszeilenschnittstelle arbeiten.


Zu Ihrer Information: Es ist eine gute Idee, die Dateinamen kurz und ohne Leerzeichen sowie die Verzeichnisse zu halten. Ich würde auch nach "Windows-DOS-Befehlen" suchen, um einige Tricks zu lernen.

Diese Lösung wird so lange dauern, dass ich sie nicht ausführen kann. Ein einfacher mv -fv * -Befehl zum Verschieben dieses bestimmten Ordners dauerte zwei Tage. Ich habe Angst, das auch einmal auszuprobieren - eigentlich jedes Mal, wenn ich versucht habe, Nautilus zu verwenden, um den Ordner zu öffnen. Ich werde am Ende immer geschlossen, weil es mein gesamtes Gedächtnis und den PC so sehr verlangsamt, dass ich mich geschlagen geben muss und es zugeben muss. Nur ein Skript wird helfen. Danke trotzdem. seanbw vor 7 Jahren 0
Sie möchten mv * in Ihrem Fall nicht verwenden. mv * bedeutet alles bewegen. Das willst du nicht. Studieren Sie die Lösung etwas näher, Sie verstehen nicht die Idee, wilde Charaktere zu verwenden. * = alle, * x bedeutet dies vor x bis x. x * bedeutet x und alles nach x; in "STRINGS" sprechen. ejbytes vor 7 Jahren 0
Wenn es sich um ein Skript oder ein Shell-Skript handelt, müssen Sie dieses Skript selbst schreiben und die Parameter und die Ausführung angeben. Der Stil dieses einfachen Befehls wird in Shell-Skripts verwendet. Vielleicht möchten Sie etwas lesen und ein paar Tutorials machen, wenn Sie nicht vertraut sind. ejbytes vor 7 Jahren 0
Das war die ursprüngliche Bitte. Vielleicht sollten Sie das Q noch einmal lesen? seanbw vor 7 Jahren 0