Zum Inhalt springen

Bash unter Solaris 9


Empfohlene Beiträge

Geschrieben

Hi nochmal,

ich hab schon weiter unten gepostet und hab da das genaue Problem geschildert:

Jetzt hab ich das Skript starten können mit:

/usr/local/bin/bash /tmp/test/Copy.sh

Skriptinhalt:


for i in `find /raid0/akzidenzen -type d -name 'layouts'` ; do

[[ $i == /raid0/lay_sammler/* ]] && continue;

cp -r $i /raid0/lay_sammler/`echo $i | cksum | cut -d' ' -f1`

done

Jetzt hat das Skript "nur" noch nen Fehler, es wird mir, sooft er einen Ordner findet, folgende Meldung ausgegeben:

cp 45 not found (wobei die Zahl variable ist, kann sich allerdings wiederhohlen)

...

findet da jemand den Fehler?

Es geht im grossen und ganzen darum das aus /raid0/akzidenzen/ sämtliche Ordner mit dem Namen layouts in das Verzeichnis lay_sammler kopiert werden OHNE die Vorhanden zu überschreiben.

thx schon mal vornweg

Bundygirl

Geschrieben

also bei mir läuft das ohne fehler .... aber ist auch unter linux.

aber was ich nicht verstehe:

cp -r $i /raid0/lay_sammler/`echo $i | cksum | cut -d' ' -f1`

das kopiert dir alle dateien aus dem gefundenen verzeichnis in ein verzeichnis unter /raid0/lay_sammler/ das den namen der checksumme von $i (dem gefundenen verzeichnisnamen) hat

versteh ich das falsch? wo ist der tiefere sinn dahinter?

ich werds gleich nochmal unter solaris testen, ob ich auch deinen fehler gelifert bekomme

Geschrieben

hi,

der tiefere Sinn darin liegt das die vorhandenen layoutordner nicht überschrieben werden.

Es gibt ja schließlich nicht nur einen layoutordner und wenn man mehrere Ordner des selben namens in ein Verzeichnis kopiert wird der schon vorhandene Ordner überschieben. Da ich das für meinen Auftrag überhaupt nicht brauchen kann ist das eine brauchbare lösung, find ich :-)

danke das du das skript ausprobiert hast!

kann es daran liegen das in den Pfaden auch Umalute wie ö,ä,ü oder auch Punkte(.) vorkommen können, dass ich diesen Fehler bekomme?

gruss

Bundygirl

Geschrieben

nein, ich habs unter solaris getestet ... das problem ist, das der ausdruck

echo $i | cksum | cut -d' ' -f1

2 zahlen ausgibt.

das erste ist wohl die checksumme, wie schon von mir angesprochen.

unter solaris kommt aber noch eine 2. zahl hinzu, hier "man cksum" unter solaris:


     For each file processed successfully, cksum  will  write  in

     the following format:


          "%u %d %s\n" <checksum>, <# of octets>, <path name>

ich denke die 2. zahl ist das # of octets, bin mir da aber nicht sicher.

fakt ist, das der cp befehl nur 2 argumente erwartet, nämlich quelle und ziel.

er bekommt aber 3!

die zahl hinter dem cp error "cp: 15 not found" ist diese angesprochene 2. zahl

deswegen geht der cp in die hose und deine dateien werden nicht kopiert.

auf den ersten blick sollte die zeile die du da hast korrekt sein, aber aus irgendeinem grund funzt der ausdruck -d ' ' nicht.

der delimiter wird nicht genommen und -f1 gibt das ganze dingens aus nicht nur die erste zahl. :nett:

Geschrieben

und hier die lösung

echo $i | cksum | cut -s -d' ' -f1

mach mal ein -s mit rein, das umgeht das zeilenweise auslesen von cut so wie ich das verstanden habe. sonst scheint der das unter solaris nicht zu machen, denke weil der input von der pipe kommt und nicht ein file zeilenweise gelesen wird.

unter linux funzt das halt, aber das ist ja auch viiiiieeeeeeel toller als solaris :mod: :bimei

Geschrieben

sorry, aber es funzt immer noch nicht :-(

die gleichen Meldungen wie eh und je. Bei mir sind aber auch manchmal 2 oder auch nur 1 Zahl zu sehen:


cp: 68 not found

cp: 81 not found

cp: 87 not found

cp: 81 not found

cp: 70 not found

cp: 5 not found

cp: 15 not found

cp: 70 not found

cp: 5 not found

cp: 10 not found

cp: 18 not found

cp: 88 not found

cp: 49 not found

cp: 7 not found

cp: 35 not found

cp: 49 not found

cp: 7 not found

Vielen Dank für deine Mühen!

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...