ls *.pdf beschwert sich: ls: ungültige Option – „_“

ls *.pdf beschwert sich: ls: ungültige Option – „_“

Ich bin es gewohnt, 'ls' zu verwenden, wie ich es in Linux Mint tun würde, z. B. 'ls *.pdf', aber in dieser Debian-Variante 'ls.pdf‘ beschwert sich. Ich benutze eine Länge ‚find -maxdepth 1 -type f -name‘.pdf" -print' stattdessen.

Das Lesen:funktioniert merkwürdighat nicht viel geholfen. Ich habe ein bash_completions-Paket und keine seltsamen Aliase für „ls“ in meiner „~/.bashrc“-Datei – ich bearbeite nie „/etc/profile“ oder das globale Profil, wo auch immer es ist.

Nur eine Vermutung. Ich habe die Lösung in der verlinkten Frage angewendet, aber sie hat nicht funktioniert. Ich verstehe „complete“ nicht ganz – ich vermute, es ist Teil von „readline“ – also würde vielleicht auch eine kurze Erklärung helfen (es gibt keine „man“-Seite).

Dies funktioniert jedoch: 'complete -p ls *.pdf', wobei 'complete --help' sagt,

 -p        print existing completion specifications in a reusable format

und deshalb frage ich mich, ob ich diese „Regel“ dauerhaft anwenden sollte? Mit der Flagge „-D“ …?

BEARBEITEN

Dieses Problem ist mir gerade auch aufgefallen:

for f in *.pdf; do mv "$f" "BOOK - $F"; done

mv: invalid option -- 'R'

BEARBEITEN 2

Ich habe die beiden obigen Befehle ausprobiert und sie funktionieren einwandfrei – auf der Partition meines Betriebssystems. Das Problem ist, dass diese Befehle fehlschlagen, wenn ich auf eine andere Partition wechsle, auf der das funktionierende Linux Mint und die PDF-Dateien laufen, die ich ändern möchte. Beide Partitionen sind ext4, beide haben denselben Benutzernamen, Hostnamen, UID/GID, Berechtigungen usw.

Antwort1

Es scheint, als hätten Sie Dateinamen mit einem führenden Bindestrich -. Verwenden Sie daher:

for f in *.pdf; do mv -- "$f" "BOOK - $F"; done

Aus man bash:

A --signalisiert das Ende der Optionen und deaktiviert die weitere Optionenverarbeitung. Alle Argumente nach -- werden als Dateinamen und Argumente behandelt. Ein Argument von - ist gleichbedeutend mit --.

Antwort2

Wenn Sie Dateinamen haben, die mit -(Minus oder Bindestrich) beginnen, interpretieren viele Programme diese als Optionen.

Um dies zu vermeiden, können Sie ./dem Pfad Folgendes voranstellen:

ls ./*.pdf

Viele Programme erlauben auch das Einfügen von --Argumenten vor Dateinamen, um das Ende von Optionen zu signalisieren:

ls -- *.pdf

Die empfohlene Vorgehensweise für Benutzer besteht natürlich darin, die Dateien umzubenennen.

verwandte Informationen