Fehler mit einem Dateinamen, der Klammern enthält

10

Als ich versuchte, den Dateinamen von old.file(1).gzin zu ändern new.file.gz, heißt es Syntaxfehler, ich verwende Ubuntu 12.04.

mv old.file(1).gz new.file.gz
bash: syntax error near unexpected token `('
Jack
quelle
8
Versuchen Sie es mv 'old.file(1).gz' new.file.gz.
Was für ein Ubuntu ist das? Ich habe noch nie von Ubuntu 12.0
mojo706

Antworten:

21

Der Kommentar von Yeti wird für Sie funktionieren, aber wenn Sie wissen möchten, warum, dann deshalb, weil Klammern als Sonderzeichen interpretiert werden und entweder mit \oder dem gesamten angegebenen Dateinamen (wie oben) maskiert werden müssen [edit: sorry, nur das (und ) müssen zitiert werden].

Wenn Sie die Tab-Vervollständigung aktiviert haben, geben Sie einfach die ersten Zeichen des Dateinamens ein und klicken Sie auf Tab. Das heißt, das Tippen mv oldund Drücken der Registerkarte sollte sich in verwandeln mv old.file\(1\).gz(es sei denn, es gibt andere potenzielle Dateien, auf old*die verwiesen werden könnte).

Jangari
quelle
8
Der gesamte Dateiname muss nicht in Anführungszeichen gesetzt werden. Nur die ()tun. Sie können tun, mv old.fil'e(1).'gz new.file.gzwenn Sie möchten.
Stéphane Chazelas
5
mv 'old.file(1).gz' new.file.gz

sollte das Problem beheben.

Satheesh K.
quelle