Tool zum Identifizieren aller Dateipfade/Dateinamen, die die von Windows erlaubte Länge überschreiten?

Ich habe einen Ordner mit mehreren verschachtelten Unterordnern.

Der übergeordnete Ordner ist 1,2 GB groß und enthält fast 3.000 hauptsächlich Screenshot-Bilddateien .

Mein Mac hat kein Problem mit den langen Dateipfaden/Namen, aber ich muss diese Dateien jetzt mit einer sehr großen britischen Behörde teilen, die Windows ausführt (nicht sicher, welche Version, da mein Q bisher auf taube Ohren gestoßen ist.. .)

Ich denke, die einzige Methode, mit der ich die Dateien teilen darf, ist OneDrive/Sharepoint – die Behörde darf keine andere Cloud-Freigabemethode verwenden.

Aufgrund der Verschachtelung (die bleiben muss) sind viele der Dateinamen/Pfade zu lang, und One Drive weist wiederholt über 1.200 davon ohne Synchronisierung zurück.

Das Popup-Fehlerfeld zeigt nur einen fehlerhaften Dateipfad an und bietet hilfreicherweise keine Liste mit „nicht konformen“ Dateien.

Gibt es eine schnelle Möglichkeit, die problematischen Dateinamen/Dateipfadnamen zu identifizieren und zu gruppieren, damit ich sie umbenennen kann?

Ich möchte sie nicht stapelweise umbenennen, falls dies die Bedeutung ändert, die ich für die einzelnen Dateinamen ausgewählt habe, die wichtig sind.

Über 95 % der Dateien sind reine Bilddateien und Beweise in einer Betrugsermittlung durch Mitarbeiter. Jeder Dateiname ist wichtig, da er dem Bild einen Kontext gibt , daher möchte ich kein Batch-Tool verwenden, um die Namen in kürzere, aber nicht hilfreiche Namen zu ändern.

Es macht mir nichts aus, sie einzeln durchzugehen, aber ich muss wissen, welche die "anstößigen" Dateinamen / Dateipfade sind, wenn ich dies tun soll.

Es kann sein, dass ich die Ordner auch etwas anders verschachteln kann, wenn ich weiß, welche die Probleme verursachen, da dies die Länge des Dateipfads verringern kann.

Idealerweise suche ich nach einer schlauen Software ähnlich MassReplaceIt (die ich bereits verwendet habe, um "illegale Zeichen" in den Dateinamen zu finden und zu ersetzen), kann aber den Terminalbefehl verwenden, wenn keine Software vorhanden ist.

Danke!

Alternativ können Sie die Ordner umbenennen und einen Schlüssel angeben, damit Sie nicht hoffen, dass eine Namensverkürzung vollständig manuell oder intelligent erfolgen muss.
Einen Schlüssel für fast 3.000 Dateien schreiben und neu nummerieren? 🥴 Schluck... Dann ist der Rest des Monats vorbei.
Die Ordner, nicht die Dateien. Wenn Sie Dateinamen haben, die sich 260 Zeichen nähern, werden Sie Probleme haben: P Sie könnten A:A1:AA1:Really really long file nameetwas anderes verwenden und müssen nur einen Schlüssel für die Ordnerhierarchie bereitstellen.
Danke, ich denke, es liegt wahrscheinlich teilweise am Verschachtelungsgrad - keiner der Ordnernamen ist übermäßig lang. Aber einige der Dateinamen sind wahrscheinlich. Ich wünschte nur, OneDrive würde Ihnen eine Liste der anstößigen Dateien geben , anstatt nur den Sprung zu verweigern und Sie dazu zu bringen, Detektiv zu spielen. Ich muss vielleicht Ihre Schlüsselidee verwenden (dafür danke), aber es ist so viel einfacher, den Namen eines Ordners in einem Nest zu sehen und zu denken, "das muss untersucht werden", und sofort darauf zu klicken, anstatt es zu haben einen separaten Ordnerschlüssel zu konsultieren. Die Person, die sich die Beweise ansieht, ist weder jung noch ein Technikfreak. 🙃
Ich unterstütze Ihre Haltung voll und ganz, aber da Sie mit dem Windows-Dateisystem der frühen 90er Jahre feststecken, muss etwas nachgeben ;))

Antworten (1)

Unter der Annahme einigermaßen vernünftiger Datei- / Ordnernamen

find TOPDIR | while read line; do [[ ${#line} -gt 1200 ]] && echo $line; done

druckt alle Pfade/Dateien, deren Gesamtlänge 1200 Zeichen überschreitet. Dies sollte es ermöglichen, problematische Ordnernamen zu erkennen und sie entsprechend umzubenennen.

Danke. Ist die Grenze wirklich 1200?! Ich dachte, ich hätte irgendwo gelesen, dass es viel niedriger war - 260 oder so ähnlich? Also gebe ich diesen Befehl in Terminal ein - was würde ich eingeben, damit es nur die übergeordnete Datei und den verschachtelten Inhalt ansieht, oder wird dieser Befehl alle anstößigen Dateien auf meinem Mac anzeigen? Es ist nur dieses spezielle Projekt; Alle meine anderen Dateien/Ordner sind mir egal.
Ah, mir ist gerade aufgefallen – oder glaube ich – dass „TOPDIR“ in Ihrem Rat oben der Name des übergeordneten Ordners ist? Ist das richtig?
@221b Ja, TOPDIR sollte durch den Namen des übergeordneten Ordners ersetzt werden. Oder Sie führen cd /to/parent/folderund verwenden .als TOPDIR. Was die 1200 betrifft: Ich habe keine Ahnung, ich habe gerade die Nummer ausgewählt, die Sie in der Frage erwähnt haben.
1200 ist die Anzahl der Dateien, die atm abgelehnt werden, nicht die Anzahl der Dateipfadzeichen!
@ 221b Ah, lies die Frage noch einmal :-)
Entschuldigung, zu früh auf Return gedrückt! 1200 ist die Anzahl der Dateien, die atm abgelehnt werden, nicht die Anzahl der Dateipfadzeichen! Und danke, ich habe versucht, TOPDIR durch den Namen des übergeordneten Ordners zu ersetzen, und habe Folgendes erhalten: ~ % find NHSFPTEST | während Lesezeile; do [[ ${#line} -gt 260 ]] && echo $line; done find: NHSFPTEST: No such file or directory myname@mynames-Air ~ %
Erfolg! Jedenfalls irgendwie. Ich habe bereits vermutet, dass ich es aus OneDrive verschieben muss, um den Terminalbefehl auszuführen. Ich dachte, ich hätte es lokal gezogen, aber es war immer noch in iCloud. Habe es noch einmal herumgeschleppt, durch Mein Macbook Air > Macintosh HD > Benutzer > Ich, den Befehl erneut ausgeführt und es hat eine Menge Daten ausgespuckt ... 🥴. Ich bin dabei, es in ein besser lesbares Format einzufügen und zu sehen, ob ich die Dateinamen/Pfade manuell bearbeiten kann - oder was der beste Schritt ist, aber jetzt kann ich zumindest sehen, welche Dateinamen/Dateipfadnamen die Probleme verursachen - vielen Dank!