• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Kopieren aller sichtbaren Dateien

ardd

Newbie
Guten Tag,
ich hätte drei Fragen:

a) alle sichtbaren Dateien von /home/luke/temp nach /tmp kopieren?
-> cp -R /home/luke/temp /tmp

b) ich möchte gerne die Ausgabe eines Programms verwerfen
-> "prog > /dev/null" oder "prog > /dev/null" oder hängen beide von der jeweiligen sprachversion des systems ab?

c) wenn ich die Rechte einer datei ändern möchte und zwar( Benutzer[read/write]; Gruppe[read]; andere[])
-> (symbolisch) chmod u=rw,g=r Datei
-> (oktal) chmod 640 Datei

das sind meine standard dinge mit denen ich mich zur Zeit beschäftige, ist das soweit richtig? *ziemlich viel Zeug für n Windowsumsteiger, so ein Linuxsystem* ^^ aber ich bin hartnäckig
 

P6CNAT

Advanced Hacker
Hallo,

Antwort zu
a) Stimmt

b) Stimmt auch, wenn du auch Fehlermeldungen etc. in eine Datei oder in die Tonne umleiten möchtest gibts es noch die Möglichkeit
programm > /log/ausgabedatei.log 2>&1

c) Stimmt

Solch einfache Dinge kannst du aber wesentlich schneller durch ausprobieren lernen. So etwas jedesmal vom Forum bestätigen zu lassen dauert ja viel zu lange. Also mehr Mut. Eventuell kannst du dir ein oder zwei Testuser anlegen. Dann läufst du nicht in Gefahr eventuell wichtige Daten zu zerschießen.

Gruß
Georg
 
A

Anonymous

Gast
a) nicht ganz halbrichtig :???:
interessante Frage müßte man sich näher mit beschäftigen, so ruft man das normalerweise nicht auf

ohne die Option -R würde es gar nicht gehen, da kommt gleich ein Fehler
mit Option -R kopiert er wirklich den gesamten Dateibaum der sich unterhalb von /home/luke/temp nach /tmp aber nur wenn /tmp noch nicht existieren sollte. Existiert /tmp dann kopiert er den Dateibaum ins /tmp Verzeichnis. :???: :???: :???:

Das kommt daher da cp das unterschiedlich interpretiert, bzw. wenn /tmp noch nicht existiert dann weiß der Befehl während der Ausführung noch nicht das das ein Verzeichnis wird, und wird desshalb das "temp" umbenennen nach "tmp" und die anderen Dateien dort hineinschieben. Wenn es existiert, dann erkennt er es als Verzeichniss, und geht davon aus, dass in dieses Verzeichnis hineinkopiert werden soll, er kopiert also in das Verzeichnis /tmp das Verzeichnis temp in der dann die beinhalteten Dateien liegen. Es entsteht also im Zweiten Fall /tmp/temp/....... aber im ersten Fall /tmp/..............

Die verseckten Dateien kopiert er trotzdem mit. ;) weil sie sich im Verzeichnis befinden .

b) sogut wie richtig
erstens sehe ich keine Unterschied zwischen den beiden Varianten, und richtig solange das Programm seine Ausgaben über die Standardausgabe ausgibt, das sind 99% der Konsolbefehle, und 50% aller anderen Programme. Wie der Name das schon sagt, das ist Standard, egal wie und aus was die Programme erstellt wurde, Ausnahmen bestätigen aber immer die Regel. Was meist du mit Sprachversionen, Sprache muss über die Soundkarte zum Lautsprecher, die Kannst du so einfach nicht nach /dev/null umleiten.

c) nur halbrichtig,
das zweite mit 640 ist absolut richtig, aber das andere u=rw,g=r setzt nur die User und Gruppenrechte die für den Rest der Welt bleiben so bestehen wie sie vorher gestanden haben und wenn sie auf rwx standen dann hat der Rest der Welt hinterher auch noch vollen Zugriff auf die Datei.

da bist du aber gleich mal auf schwierige Grenzfälle gestoßen.


robi
 
OP
A

ardd

Newbie
Das mit den Testusern ist eine sehr gute Idee. Danke.

:> und ran an die nächsten experimente
 
A

Anonymous

Gast
P6CNAT schrieb:
Antwort zu
a) Stimmt

c) Stimmt
Eventuell kannst du dir ein oder zwei Testuser anlegen. Dann läufst du nicht in Gefahr eventuell wichtige Daten zu zerschießen.

Und du auch gleich noch Testuser anlegen und mittesten. ;) ;) ;) ;)

robi
 

P6CNAT

Advanced Hacker
robi schrieb:
Und du auch gleich noch Testuser anlegen und mittesten. ;) ;) ;) ;)
robi

Na klar,

bei potentiell gefährlichen Befehlen immer (stell dir vor, dass das Wort immer leuchtet, schreit, .... ;) ).
Bei harmlosen und reversiblen Befehlen begnüge ich mich damit, zu prüfen, ob das Ergebnis meinen Erwartungen entspricht.

Schließlich enthalten die diversen Shellsprachen jede Menge Überraschungen. Und es soll ja gestandene Unix Admins geben die sich mit einem Befehl zum falschen Zeitpunkt im falschen Verzeichnis sogar das Betriebsystem gelöscht haben.

Gruß
Georg
 
OP
A

ardd

Newbie
ich möchte in der tat nur die sichtbaren datein, ich hab mir überlegt ob es möglich es ist mit der Einschränkung " [!.]* " und cp zum Erfolg zu kommen. aber es geht noch nicht ganz
 

Wizzzard

Member
ardd schrieb:
ich möchte in der tat nur die sichtbaren datein, ich hab mir überlegt ob es möglich es ist mit der Einschränkung " [!.]* " und cp zum Erfolg zu kommen. aber es geht noch nicht ganz

Nein, einfach "*". Das nimmt alle Datei- bzw. Verzeichnisnamen, die nicht mit einem Punkt anfangen.
 
Oben