Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Bash unter Solaris 9

Empfohlene Antworten

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

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

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

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:

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

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!

ich fahr jetzt heim

also ich bin morgen wieder gegen halb 10 erreichbar!

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.