Rechte von Dateien und Ordner strukturiert anzeigen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Muad
Beiträge: 40
Registriert: 22.09.2005 20:09:20

Rechte von Dateien und Ordner strukturiert anzeigen

Beitrag von Muad » 21.02.2006 22:45:29

Hi,

ich wollte mal wissen, ob es ein Befehl gibt, die mir die Rechte aller Dateien und Ordner als Baumstruktur wiedergibt??
also z.B. 2 Ordner mit jeweils 1 Ordner (enthalten jeweils wieder 2 Dateien) und 3 Dateien:

Code: Alles auswählen

rwxrwxrwx Ordner 1
|- rwxrwxrwx Ordner 2
   |- rwxrwxrwx Datei 1
   |- rwxrwxrwx Datei 2
   |- rwxrwxrwx Datei 3
|- rwxrwxrwx Datei 4
|- rwxrwxrwx Datei 5
|- rwxrwxrwx Datei 6
rwxrwxrwx Ordner 3
|- rwxrwxrwx Ordner 4
   |- rwxrwxrwx Datei 7
   |- rwxrwxrwx Datei 8
   |- rwxrwxrwx Datei 9
|- rwxrwxrwx Datei 10
|- rwxrwxrwx Datei 11
|- rwxrwxrwx Datei 12
Gibt es da Skripts oder ein einfacheren Befehl???

mfg
Muad

Benutzeravatar
Cloonix
Beiträge: 589
Registriert: 20.11.2004 10:42:24
Wohnort: München
Kontaktdaten:

Beitrag von Cloonix » 21.02.2006 22:47:10

Spontan würde ich sagen:

Code: Alles auswählen

ls -la `find -type d`
Aber vielleicht gibt es noch was besseres.
proud to be 100% M$ free (except X300T)
http://claus.freakempire.de
http://debian.freakempire.de

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 21.02.2006 22:55:54

Cloonix hat geschrieben:Aber vielleicht gibt es noch was besseres.
na das hoffe ich doch :)

Code: Alles auswählen

gms@gms1:~$ ls -la `find -type d`
find: ./bin: Keine Berechtigung
bash: /bin/ls: Die Argumentliste ist zu lang

Benutzeravatar
Muad
Beiträge: 40
Registriert: 22.09.2005 20:09:20

Beitrag von Muad » 21.02.2006 23:15:24

Vielen Dank für die schnelle Antwort.

mfg
Muad

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 21.02.2006 23:31:38

was macht man nicht alles wenn einem fad ist:

Code: Alles auswählen

root@gms1:~/tmp/dir1# find -type d | perl -ne '$dir=$_;s/[^\/]//g;$in=length($_); $in="  "x$in; print $in,$dir;$in.="!- ";print $in,join("\n$in",split(/\n/,`ls -la $dir`)),"\n"'
.
!- insgesamt 12
!- drwxr-xr-x  3 root root 4096 2006-02-21 23:28 .
!- drwxr-xr-x  4 root root 4096 2006-02-21 23:28 ..
!- drwxr-xr-x  3 root root 4096 2006-02-21 23:30 dir2
  ./dir2
  !- insgesamt 12
  !- drwxr-xr-x  3 root root 4096 2006-02-21 23:30 .
  !- drwxr-xr-x  3 root root 4096 2006-02-21 23:28 ..
  !- drwxr-xr-x  3 root root 4096 2006-02-21 23:31 dir3
  !- -rw-r--r--  1 root root    0 2006-02-21 23:30 file
    ./dir2/dir3
    !- insgesamt 12
    !- drwxr-xr-x  3 root root 4096 2006-02-21 23:31 .
    !- drwxr-xr-x  3 root root 4096 2006-02-21 23:30 ..
    !- drwxr-xr-x  2 root root 4096 2006-02-21 23:31 dir4
    !- -rw-r--r--  1 root root    0 2006-02-21 23:29 file
      ./dir2/dir3/dir4
      !- insgesamt 8
      !- drwxr-xr-x  2 root root 4096 2006-02-21 23:31 .
      !- drwxr-xr-x  3 root root 4096 2006-02-21 23:31 ..
      !- -rw-r--r--  1 root root    0 2006-02-21 23:31 file
root@gms1:~/tmp/dir1#
Gruß
gms

Benutzeravatar
Muad
Beiträge: 40
Registriert: 22.09.2005 20:09:20

Beitrag von Muad » 22.02.2006 01:03:15

habs mal ausprobiert, eure Befehle machen genau das was ich will :)

aber es löst nicht mein Problem.

Ich habe ein Ordner kopiert und die Dateien und Ordner verlieren ihre ursprüngliche Rechte und haben neue Recht bekommen. Ich will die Ordner Teilweise auch per FTP hoch-/runterladen, da gehen ja auch die rechte flöten...

Gibt es ein Befehl, der sich alle Rechte für Ordner und Dateien merkt und ein Skript mit den Befehlen erstellt, den man dann im obersten Ordner ausführt und er alle Dateien und Ordner die richtigen Rechte wiedergibt???

mfg
Muad

Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

Beitrag von meandtheshell » 22.02.2006 09:22:09

Code: Alles auswählen

cp -p <foo>
:idea:

markus

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 22.02.2006 11:14:15

Muad hat geschrieben:Ich habe ein Ordner kopiert und die Dateien und Ordner verlieren ihre ursprüngliche Rechte und haben neue Recht bekommen.
wie "meandtheshell" schon angemerkt hat, erhälst du die Dateiattribute mit der Option "-p". Mit der Option "-d" erhältst du auch die Symlinks und mit der Option "-R" kopierst du recursive. Daher "cp -dpR <src> <dst>" oder die Kurzform dessen "cp -a <src> <dst>"
Muad hat geschrieben: Ich will die Ordner Teilweise auch per FTP hoch-/runterladen, da gehen ja auch die rechte flöten...
Vielleicht kannst du die Ordner vor dem Transferieren in ein Archiv packen. Vielleicht ist aber auch FTP nicht die beste Lösung für dich.
Muad hat geschrieben:Gibt es ein Befehl, der sich alle Rechte für Ordner und Dateien merkt und ein Skript mit den Befehlen erstellt, den man dann im obersten Ordner ausführt und er alle Dateien und Ordner die richtigen Rechte wiedergibt???
Ein Befehl der sich alle Rechte für Ordner und Dateien merkt:

Code: Alles auswählen

find -type d -exec ls -la "{}" \; >saveperm.txt
Das Script ist nicht wirklich schwer zu schreiben, das Problem sind aber die Dateien/Ordner, die seit der letzten Sicherung dazugekommen sind (lokal bzw remote)

Gruß
gms

Benutzeravatar
hkalegre
Beiträge: 286
Registriert: 11.11.2005 14:32:08

Beitrag von hkalegre » 22.02.2006 11:55:54

Code: Alles auswählen

   
       tar -cf - . | (cd /foo1 ; tar -xvf -)

       oder von der Wurzel:
        tar -cf - ./foo | (cd /foo1 ; tar -xvf -)

Benutzeravatar
Muad
Beiträge: 40
Registriert: 22.09.2005 20:09:20

Beitrag von Muad » 23.02.2006 08:16:52

Vielen Dank für die Antworten, werde es heute abend ausprobieren.

Es sind sachen für den Webspace und die meisten bieten nur ftp an :(

mfg
Muad

Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

Beitrag von meandtheshell » 23.02.2006 08:45:57

nur ftp ...
du kannst daten auch durch einen ssh tunnel kopieren - du brauchst kein ftp Protokoll

markus

Benutzeravatar
Muad
Beiträge: 40
Registriert: 22.09.2005 20:09:20

Beitrag von Muad » 24.02.2006 00:54:32

Die meisten bieten aber kein SSH an.

oder meintest du ein ssh-tunnel per ftp oder???? Kenne ich zwar nicht, will aber immer gerne dazu lernen :)
Wenn es garnicht verstanden habe, erklär es mir, hast mich neugierig gemacht....

mfg
Muad

yeti

Beitrag von yeti » 24.02.2006 01:19:00

Muad hat geschrieben:Gibt es ein Befehl, der sich alle Rechte für Ordner und Dateien merkt und ein Skript mit den Befehlen erstellt, den man dann im obersten Ordner ausführt und er alle Dateien und Ordner die richtigen Rechte wiedergibt???
Etwas sowas?

Code: Alles auswählen

find . -printf 'chown %U:%G %p\nchmod %m %p\n'
Statt "." kann auch ein Pfad angegeben werden.
Für Filenamen mit "bösen Zeichen" müssen noch ein paar Quotes spendiert werden, aber es geht ja jetzt erstmal nur um die Idee...

Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

Beitrag von meandtheshell » 24.02.2006 08:43:51

Muad hat geschrieben: oder meintest du ein ssh-tunnel per ftp oder?
das ist Unsinn - wie soll das gehen beide sind im selben Layer im OSI
http://en.wikipedia.org/wiki/Internet_protocol_suite

Du kannst einem ssh Befehel ganz einfach ein Kommando mitgeben und dann Daten von remote nach lokal kopieren. siehe
- man ssh
- google
- http://qref.sourceforge.net/Debian/refe ... html#s-ssh

markus

Antworten