Ich habe das Unglück, aus einem MS-DOS-Hintergrund zu kommen - aber zumindest weiß ich zu schätzen, wie viel leistungsfähiger Linux ist. Ich habe daran gearbeitet, mein Linux-Fu auf den neuesten Stand zu bringen, aber es gibt einige Dinge, die mit DOS erledigt werden könnten, und ich bin mir nicht sicher, wie ich es mit Linux am einfachsten erreichen kann :
Umbenennen mehrerer Dateien - Verwenden von zwei Platzhaltern
c:\> dir
Directory of c:\
file1.txt
file2.txt
file3.txt
file4.txt
c:\>rename *.txt *.bak
c:\> dir
Directory of c:\
file1.bak
file2.bak
file3.bak
file4.bak
Ich weiß, dass ich hier verwenden könnte find -exec
, aber ist es möglich, eine kürzere Syntax zu verwenden - vielleicht mv
mit einigen speziellen Flags oder Syntax? Ich denke, der Schlüssel dazu ist der zweite *
Platzhalter, da Linux kein Problem mit dem ersten haben sollte (dh ich weiß, wie man die Dateien auswählt, die ich mit Platzhaltern umbenennen möchte).
Umbenennen einer einzelnen Datei - Verwenden eines Platzhalters
c:\> dir
Directory of c:\
file1.txt
c:\>rename file1.txt *.bak
c:\> dir
Directory of c:\
file1.bak
Dies ist besonders hilfreich, wenn Sie lange und unhandliche Dateinamen umbenennen. Ich dachte, ich könnte vielleicht mv file1.txt $1.bak
damit enden, file1.txt.bak
was auch akzeptabel wäre, aber ich bin nicht sicher, ob Sie den $1
Parameter inline mit einem Shell-Befehl referenzieren können . Auch in diesem speziellen Fall ist es nur praktisch, wie ms-dos den *
Platzhalter bastardisiert , um ihn als eine Art Erfassungs- / Ersetzungsübereinstimmung für einen Teil des Dateinamens zu verwenden.
Filtern von Verzeichnislisten mit einem Platzhalter
c:\> dir
Directory of c:\
file1.txt
file2.txt
file3.txt
file4.txt
text.txt
\temp (directory)
c:\> dir file*
Directory of c:\
file1.txt
file2.txt
file3.txt
file4.txt
c:\> t*
Directory of c:\
text.txt
\temp (directory)
Ich bin mir nicht sicher, mit welcher Syntax das richtig ls
ist oder ob es überhaupt möglich ist. Wenn ich so etwas getan habe ls t*
, wird es von Anfang an in Verzeichnisse zurückgeführt t
. Meine Problemumgehung wurde entweder verwendet find . --max-depth 1 -iname "t*"
oder so ähnlich ls -al | grep t
- keine davon ist so kurz und einfach wie sie dir t*
ist.
Schließlich weiß ich, dass ich Aliase einrichten kann, um diese langen Befehle zu verkürzen, aber ich würde gerne ein sofort einsatzbereites Linux-Fu lernen, um diese Dinge zu tun, da Sie manchmal mit einem Remote-System verbunden sind oder arbeiten auf einer neuen Maschine.
Wie kann ich mv
und ls
Dateien auf die gleiche Weise wie früher dir
und rename
Dateien?