ubuntuusers.de

cp-Befehl: Leerstellen im Pfad

Status: Gelöst | Ubuntu-Version: Ubuntu 20.04 (Focal Fossa)
Antworten |

AugustQ

Anmeldungsdatum:
24. Oktober 2007

Beiträge: 767

Hi,

ich habe ein Problem: bei einem cp-Befehl werden mir Lerstellen im Pfadnamen als Fehler angezeigt und die entsprechende Datei nicht kopiert. Was kann ich da tun?

Das ist die Fehlermeldung:

cp: reguläre Datei '/xxxxxxxxxx/Bilder/für Blog/usable/Bildschirmfoto vom 2016-08-09 16:43:49.png' kann nicht angelegt werden: Das Argument ist ungültig

Mit diesem Skript führe ich die Operation durch:

   for dir in *; do
       if [[ -d "$dir" && ! -L "$dir" ]]
       then
           if [ "$dir" != "RasPi" ]
           then
               echo "working on " "$dir"
               cp -arup   ~/"$dir" "$COPYDESTINATION"
           fi
       fi
    done  

Was muß ich da ändern?

Schönen Gruß AugustQ

Doc_Symbiosis

Avatar von Doc_Symbiosis

Anmeldungsdatum:
11. Oktober 2006

Beiträge: 4453

Wohnort: Göttingen

Zeig mal bitte das ganze Skript.

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13219

Das Quoting der Variablen sieht gut aus. Vielleicht fehlt auch einfach das Zielverzeichnis.

Doc_Symbiosis schrieb:

Zeig mal bitte das ganze Skript.

+1

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17625

Wohnort: Berlin

Vermutung aus der Hüfte: Das Dateisystem ist vfat oder ein naher Verwandter, und akzeptiert keine Doppelpunkte im Dateinamen, weil die unter DOS/Windows für Laufwerksbuchstaben, genauer: Partitionsbuchstaben, reserviert sind.

AugustQ

(Themenstarter)

Anmeldungsdatum:
24. Oktober 2007

Beiträge: 767

und hier das Skript:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/bin/bash
#

COPYDESTINATION=/media/august/HDDRIVE2GO/Linux/august
#COPYDESTINATION=/media/august/676e15b9-ee7f-4a51-ab08-94be4821a090
#COPYDESTINATION=/media/august/Sicherung

if [ -z "$COPYDESTINATION" ] 
then
    echo "Variable COPYDESTINATION not set"
    echo
else
   for dir in *; do
       if [[ -d "$dir" && ! -L "$dir" ]]
       then
           if [ "$dir" != "RasPi" ]
           then
               echo "working on " "$dir"
               cp -arup   ~/"$dir" "$COPYDESTINATION"
           fi
       fi
    done  
fi

Das Dateisystem auf der Zielplatte ist ntfs, das lässt sich aber ändern.

Schönen Gruß August

Bearbeitet von rklm:

Syntaxhighlighting

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13219

user_unknown schrieb:

Vermutung aus der Hüfte: Das Dateisystem ist vfat oder ein naher Verwandter, und akzeptiert keine Doppelpunkte im Dateinamen, weil die unter DOS/Windows für Laufwerksbuchstaben, genauer: Partitionsbuchstaben, reserviert sind.

Ich denke, das ist es.

AugustQ

(Themenstarter)

Anmeldungsdatum:
24. Oktober 2007

Beiträge: 767

oh, an den Doppelpunkt habe ich nicht gedacht.

Frage: Platte umformatieren, weg von ntfs? Ist dann das Problem gelöst?

frostschutz

Avatar von frostschutz

Anmeldungsdatum:
18. November 2010

Beiträge: 7790

AugustQ schrieb:

Frage: Platte umformatieren, weg von ntfs? Ist dann das Problem gelöst?

Wenn das eine Option für dich ist, ja klar. Ansonsten musst du irgendwie die Dateinamen ändern.

Wenn du optisch ein : haben möchtest könnte man auch auf ähnliche Unicode Zeichen ausweichen, : → : funktioniert wahrscheinlich, aber das stiftet dann nur noch mehr Verwirrung wenn man versucht, das auf der Shell einzutippen.

AugustQ

(Themenstarter)

Anmeldungsdatum:
24. Oktober 2007

Beiträge: 767

Danke für die vielen Hinweise. Das Problem ist gelöst.

Ich habe mir die Dateinamen mal angesehen. Das sind Bildschirmfotos (hardcopies), und sie stammen aus dem Jahr 2016. Das kann alles weg, habe ich auch gelöscht.

Die hardcopies wurden erstellt mit dem eingebauten Programm, das auch die Dateinamen so anlegte. Mittlerweile werden die Dateinamen anders erzeugt, nämlich in der Form: "Bildschirmfoto vom 2022-03-24 13-11-27".

Ich versteh aber nicht, warum mir dieses Problem erst jetzt auffällt (mein Problem).

Schönen Gruß AugustQ

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13219

AugustQ schrieb:

Ich versteh aber nicht, warum mir dieses Problem erst jetzt auffällt (mein Problem).

Ist doch schön: ein Rätsel gelöst, ein neues Rätsel erhalten. So wird es nie langweilig. ☺

AugustQ

(Themenstarter)

Anmeldungsdatum:
24. Oktober 2007

Beiträge: 767

mein Skript läuft jetzt durch, aber es gibt immer noch ein paar Dateien mit der Zeitangabe in dieser Form im Dateinamen. Außerdem gibt es auch dAteien mit einem Fragezeichen im Namen, das wohl vom 'drucken' als PDF kommt.

Na gut, diese Dateien werden dann halt nicht kopiert, macht nix.

Nochmals Danke für die Hilfe.

AugustQ

Antworten |