hi ich bin eine linux anfängerin und mochte erstmal alle kommando befehle kennen
mein frage ist : was ist der unterschied zwischen "rm *.class " und „rm -r .class " ? was bedeutet „.class“ und " *.class“ überhaupt ?
merci beaucoup
mein frage ist : was ist der unterschied zwischen "rm *.class
" und „rm -r .class " ? was bedeutet „.class“ und " *.class“
Hallo und Willcommen im Forum!
Das Kommando rm *.class wird im aktuellem Verzeichnis alle Dateien, die auf .class enden, löschen. Man soll dabei beachten, dass wenn „w“-Flag nicht gestzt ist das Löschen nur nach Bestätigung möglich (dafür -f -Option).
Das wird, z. B., folgende Dateien löschen:
1.class
test.class
.class
Um zu Datei .class (versteckte) zu sehen, sollst Du beim Aufruf von ls die Option -a setzen.
Das Befehl rm -r .class wird dafür im aktuellem Verzeichnis den versteckten Verzeichnis .class löschen und zwar rekursiv, das heißt mit allen Unterverzeichnissen und ihrem Inhalt.
Du kannst umfangreichere Informationen hier erhalten:
http://books.google.com/books?id=POhPd6FyWw0C&lpg=PA…
Mit Gr., Gennadiy
was ist der unterschied zwischen "rm *.class
" und „rm -r .class " ? was bedeutet „.class“ und " *.class“
überhaupt ?
Hallo,
„rm“ ist ein Befehlt der Dateien oder Verzeichnisse löscht. Ist der Parameter „-r“ angegeben, dann wird rekursiv gelöscht, d. h. dass auch Unterverzeichnisse und deren Inhalt mit gelöscht werden.
„.class“ ist in diesem Zusammenhang vermutlich ein Platzhalter, und bedeutet „Datei“ oder „Verzeichnis“.
Also z. B. „Bilder/“ -> Verzeichnis
oder z. B. „Zielfoto.jpg“ -> Datei
„*“ ist ein Wildcard (Jokerzeichen) und ersetzt Zeichen im Namen.
rm *foto.jpg löscht z. B. die Dateien „Zielfoto.jpg“, „Urlaubsfoto.jpg“ „Passfoto.jpg“, also alle Dateien die diese Zeichenkette enthalten.
rm -r *foto* löscht im aktuellen Vezeichnis alle Dateien und (wegen -r) alle Verzeichnisse (mit ihren Dateien), die die Zeichen „foto“ enthalten.
Viele Grüße
Rai
Falls noch nicht entdeckt, hier ist übrigens eine ganz gute Übersicht zu wichtigen Linux-Komandos: http://www.helmbold.de/linux/
was ist der unterschied zwischen "rm *.class
" und „rm -r .class " ? was bedeutet „.class“ und " *.class“
Sorry- ich kann die Formatierung nicht ganz lesen.
Ich vermute du möchtest folgendes Wissen:
class bedeutet nichts spezielles in Sinne von Linux Kommandos, es scheint mir hier eher eine Datei-Endung.
- rm *.class löscht alle Dateien, die mit .class enden
(a.class, be.class, etc)
-Wenn eine datei mit dem Punkt beginnt, so ist sie
lediglich um versteckte Dateien. Die kann man mit
„ls -la“ anzeigen lassen. Wenn du so eine Datei
löschen möchtest, musst du das auch genau so angeben.
z.B. ls .class (die Datei .class). - die option -r kann ebenfalls rekursiv (incl. Unter-
verzeichnisse) löschen, gerne in Kombination -rf
genommen. Siehe dir mal die Optionen „man rm“ an.
Was möchtest du denn erreichren?
na ja ich studiere wirtschaftsmathe
Hi
* ist ein sogenannter Wildcard (Platzhalter) und bedeutet „alle Zeichen“ - somit würden mit „rm *.class“ alle dateien die mit .class enden (also zBsp a.class 1.class undsoweiter) gelöscht werden.
Unter Linux werden hauptsächlich config-Dateien bzw. -Verzeichnisse mit einem Punkt am Anfang benannt, da diese bei Absetzen des Befehls „ls -l“ nicht angezeigt werden - um diese auf der Kommandozeile zu sehen muss deshalb „ls -al“ verwendet werden.
Den Befehl .class gibt es meines Wissens nach nicht - compilierte (=übersetzt mit javac) Java-Klassen enden mit .class.
Beispiel:
„javac MeineKlasse.java“ resiltiert in MeineKlasse.class
(vorausgesetzt natürlich das der Programmcode im MeineKlasse.java-File ist korrekt).
Alles klar ?
Cu.
lg
mips6170
hallo serene,
wenn du die funktion und die bedienung bestimmter befehle erfahren möchtest, sind die manunals meist sehr hilfreich. aufrufen tut man die seiten mit "man befehl"m also z. b. „man rm“.
rm steht allgemein für remove, ist folglich ein löschbefehl. das * ist ein platzhalter. mit ihm kann man beliebige zeichen ersetzen. „rm *.class“ löscht also alle dateien, die mit .class enden, z. b. 1.class, 2.class, test.class usw.
der schalter -r sorgt für ein rekursiver ausführen des befehls. das bedeutet, dass der befehl nicht nur im aktuellen verzeichnis durchgeführt wird, in dem du dich gerade befindest, sondern auch in allen unterverzeichnissen!
gibst du „rm .class“ ein, wird NUR die datei „.class“ gelöscht, falls es diese datei gibt. datein die mit einem punkt beginnen, sind versteckte dateien. diese werden von dateibrowsern normalerweise verborgen bzw. nicht ohne weiteres angezeigt.
ich hoffe, ich konnte dir ein wenig weiterhelfen.
falls noch fragen offen sind, immer her damit
grüße
tim
danke
vielen dank
hallo Tim
vielen dank für deine antwort ich habe tausende frage ich freue mich daß ich dich weiter fragen stellen darf
bei mv(verschiebung von dateien ) ist die option „-r“ nicht vorhanden
was könnte der grund dafür sein ? mv verschiebt nur datein und keine verzeichnisse oder/mit unterverzeichnisse ?
merci beaucoup
Hallo Serene,
der Grund dafür könnte sein, dass ein rekursives Ausführen in diesem Fall nicht nötig bzw. möglich ist. Wird ein Verzeichnis mit mv verschoben oder umbenannt, müssen die evtl. vorhandenen Unterverzeichnisse mitwandern, sonst würden sie „in der Luft hängen“. So weit ich weiß, kann man mit aber durchaus Verzeichnisse mit mv verschieben. Etwas umständlicher wird es, wenn du mehrere Dateien verschieben möchtest. Aber hierfür gibt es mmv. Am besten du liest mal diesen Artikel: http://www.linux-user.de/ausgabe/2003/10/082-zubefeh…
Da werden mv und mmv ganz gut erklärt.
Schöne Grüße
Tim
Hey,
sorry in den letzten Tagen viel zu tun. Hab total vergessen, dass ich von dir eine email bekommen habe.
nun der befehl „man rm“ hilft dir eventuell weiter? rm = Datei löschen.
.class bzw *.class ist der name der Datei welche gelöscht werden soll. das sternchen ist ein Platzhalter für beliebige zeichen oder _kein_ Zeichen.
rm *.class : alle Dateien mit der Dateierweiterung „.class“ werden gelöscht. Also z.B. folgende dateien: „foo.class“, „bar.class“ oder auch „.class“. rm löscht standardmäßig keine Verzeichnisse. Ein Verzeichnis mit dem Namen „verz.class“ wird hier nicht gelöscht.
rm -r .class: Das -r heisst „rekursiv“ das heißt Verzeichnisse werden auch gelöscht. Das Sternchen fehlt hier also werden lediglich Verzeichnisse und Dateien mit dem Namen „.class“ gelöscht. Und zwar nur genau dieser Name foo.class bleibt bestehen.
eine Datei (oder Verzeichnis) mit einem Punkt als erstes Zeichen ist übrigens unter Linux versteckt, also nicht sichtbar
HTH
Micha
Hallo,
war eine Weile abwesend - bitte entschuldige die verspätete Antwort.
rm *.class # löscht alle Dateien im aktuellen Verzeichnis, deren Name mit .class endet. Unterverzeichnisse des aktuellen Verzeichnis, die ebenfalls mit .class enden werden nicht gelöscht.
rm -r .class # löscht die Datei .class oder das Unterverzeichnis .class. Dabei wird das Unterverzeichnis ausserdem noch geleert. Leere Unterverzeichnisse könnte man auch mit
rmdir .class # löschen. Das wäre sicherer als die Option -r.
Generell würde ich empfehlen mit alias-Kommandos die Befehle rm, cp und mv etwas abzusichern.
alias # zeigt alle vorhandenen alias an
Das hier sind meine Vorschläge für die Absicherung:
alias cp=„cp -i“
alias mv=„mv -i“
alias rm=„rm -i“
Grüße,