Ich versuche, ein Bash-Skript zu schreiben, das in einem Verzeichnis ausgeführt wird und Dateinamen in Verzeichnissen unterhalb des aktuellen Verzeichnisses ändert. Ich habe den Punkt erreicht, an dem ich den aktuellen Pfadnamen jeder Datei zusammen mit dem neuen Pfadnamen dieser Datei wiedergeben kann.Wie ändere ich Dateinamen im Verzeichnis von Verzeichnissen?
Ich dachte, dass alles, was ich tun müsste, ist, das Echo zu einem mv zu ändern und sie zerreißen zu lassen. Falsch! Anscheinend erlaubt es bash nicht, dass mv auf Pfadnamen operiert.
Ich wäre super für jede Beratung, wie Sie von hier aus vorgehen.
Können Sie genauer zeigen, was Sie tun und was das Ergebnis ist? Es ist ein wenig mehrdeutig, was Sie mit "bash wird nicht erlauben, dass' mv' auf Pfadnamen operieren ", aber im Allgemeinen ist das keine wahre Aussage. –
... eine ordnungsgemäße [MCVE] (http://StackOverflow.com/Help/Mcve), mit Code, den andere Leute laufen könnte, um den gleichen Fehler zu sehen, den Sie bekommen, wäre ideal. Zum Beispiel könnten Sie so etwas tun: 'tempdir = $ (mktemp -d test.XXXXXX); mkdir -p "$ tempdir"/{Verzeichnis1, Verzeichnis2, Verzeichnis3}/{Unterverzeichnis1, Unterverzeichnis2, Unterverzeichnis3}; wenn mv "$ tempdir/dir1" "$ tempdir/dir1new"; dann echo "Umbenannt $ tempdir/dir1 nach $ tempdir/dir1new"; else echo "$ tempdir/dir1 konnte nicht in $ tempdir/dir1new umbenannt werden"; fi', erstellen Sie alle Verzeichnisse, die Sie benötigen, um zu zeigen, was Sie tun und wie es scheitert. –
Charles, Nachrichten, die ich bekomme, sind eine Reihe von: usage: mv [-f | -i | -n] [-v] Quellziel mv [-f | -i | -n] [-v] source ... directory – grok12