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.

Empfohlene Antworten

Veröffentlicht

Hi

Ich habe vor ein Shell Script zu schreiben und hab da ein kleines Problem:

Ich hab ein Verzeichnis mit mehreren Benutzernamen, also z.B.

/home/user1

/home/user2

Ich will jetzt die Daten in dem Verzeichnis so packen, dass ich am Ende gepackte Dateien in dem Format habe:

user1.tgz

user2.tgz

Kann mir da jemand weiterhelfen? Ich hab schon probiert einfach ein ls zu machen, mir das Ergebnis in eine Datei zu schreiben aber dann weiss ich nicht mehr weiter. Wie kann ich die Datei wieder auslesen und die Variablen passend setzen.

Oder gibts da eine ganz einfach Lösung?

Noxy

Hey,

schau Dir das hier mal an:

"for i in /home/*

do

echo $i

done

"

Diese MiniSchleife echoed alle Dateien/Unterverzeichnisse unter "/home*". Jetzt musst Du nur noch das echo durch den tar Befehl Deiner Wahl ersetzen.

In der Variablen $i (Kannst Du natürlich auch anders nennen) steht dann jeweils eine Datei/Verzeichniss aus /home...

Bye

SystemError

Vielen Dank, hat funktioniert.

Noxy

Ich hab jetzt noch ein 2. Problem, bei dem mir vielleicht jemand helfen kann:

Ich möchte nur die Datein vom letzen Tag in einer gepackten tar Datei haben, hat jemand eine Idee, wie das funktioniert?

Heute ist der 04.11. also sollen alle Dateien vom 03.11 in der Datei sein.

Thx

Noxy

Unter welcher Shell möchtest du das denn machen? Korn? Bash? CSH?

Hallo,

Bei dem oben geposteten Skript handelt es sich um ein bash/sh Skript. Um Dateien mit einem bestimmten Datum zu suchen (und zu finden) bietet sich der Befehlt "find" an. Nach welchem Kriterium suchst Du denn, neu erzeugten Dateien, letztes Zugriffsdatum, letztes Modifikationsdatum? Da gibt es eine Menge Kombinationen.

Nic

Also das ganze soll am Besten als bash/sh Script laufen und es sollen alle Dateien sein, die am Vortag erzeugt worden sind. Kann man das nicht ganz einfach erschlagen? Ich hätte nicht gedacht, dass es irgendwie kompliziert ist.

Hallo,

so kompliziert ist das auch gar nicht:


find . -daystart -mtime -1 

Listet alle Files auf, die gestern modifiziert wurden. Problematisch dabei ist, dass auch "." gefunden wird. Bei einer Weiterverarbeitung mit "tar" werden aber Unterverzeichnisse mit "getarred". Aus dem Grund solltest Du noch mittels "-type f" z.B. nur reguläre Dateien verarbeiten (oder eben nicht ab "." suchen; hängt vom Anwendungszweck ab; Verzeichnisnamen sind aber generell ein Problem):

find /home/user1 -daystart -mtime -1 -type f -exec tar cvf /tmp/user1.tar {} \;

Wenn Du das ganze in einer Schleife laufen läßt (über Verzeichnis und Archiv-Namen) solltest Du Dein Skript eigentlich haben ;)

Nic

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

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.