Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Unix tar.gz

Frage Entwicklung Batch & Shell

Mitglied: presidente

presidente (Level 1) - Jetzt verbinden

19.03.2013 um 10:19 Uhr, 2260 Aufrufe, 15 Kommentare, 5 Danke

Hallo Forum,

eine Frage aus dem Bereich tar.gz.

Hab eine Struktur, die nie gesichert wird soweit nichts verändert wurde.
Wenn eine Datei bearbeitet wird, dann wird dem Dateinamen ein ! vorangestellt.
Beispiel:

Entwurf-2011.xls -> unverändert
wird die Datei vom Benutzer verändert,wird sie in !Entwurf-2011.xls umbenannt.

Jede Nach läuft eine Sicherung per tar.gz und es wird alles gepackt.
Nun soll es so verändert werden,daß nur Dateien die ein ! vorangestellt ahben gesichert werden, der Rest nicht mehr.

tar cvzf archivsicherung.tar.tgz /dateiablage/!*.*

klappt nicht, wie muß ich es verändern ?

Klappt es nicht mit dem !, muß ich da ein anderes Zeichen verwenden ? Ich möchte abscihtlich nicht mit RSYnc arbeiten, es sollen nur die umbenannten Dateien gepackt werden...

Gruß und Danke

Stefan
Mitglied: Alchimedes
19.03.2013 um 10:35 Uhr
Hallo ,

das ! Zeichen ist in der shell ein Sonderzeichen.
Du musst es vor der Auswertung durch die Shell schuetzen , maskieren.

tar cvzf archivsicherung.tar.tgz /dateiablage/\!*.* <- entweder so

tar cvzf archivsicherung.tar.tgz /dateiablage/^[!]* <- oder so

sollte das klappen.

Gruss
Bitte warten ..
Mitglied: presidente
19.03.2013 um 10:47 Uhr
Hi,

klappt leider nicht:

tar czf archivsicherung11.tar.tgz /dateiablage/^[!]*

tar: /dateiablage/^[!]*: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors


tar cvzf archivsicherung.tar.tgz /dateiablage/\!*.*

tar: /dateiablage/!*.*: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors


Gruss und danke
Bitte warten ..
Mitglied: Lochkartenstanzer
19.03.2013, aktualisiert um 11:17 Uhr
find  /dateiablage/ -iname "!*" -exec tar Avfz archivsicherung.tar.tgz {} \; 
wäre auch eine Möglichkeit.


korrektur:

find  /dateiablage/ -iname "\!*" -exec tar Avfz archivsicherung.tar.tgz {} \; 
oder
find  /dateiablage/ -iname '!*' -exec tar Avfz archivsicherung.tar.tgz {} \; 

Stichwort zu dem Problem: "shell-expansion".

lks
Bitte warten ..
Mitglied: Lochkartenstanzer
19.03.2013 um 10:51 Uhr
Zitat von presidente:

tar: /dateiablage/!*.*: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors


Offensichtlich sind die Dateien in Unterordnern und nicht direkt unter "/dateiablage/". versuch mal meinen Vorschlag. mit dem find.
Bitte warten ..
Mitglied: presidente
19.03.2013 um 10:59 Uhr
ja, die Dateien befinden sich in Unterordnern. Dort sind jede Menge Unterordner... ich probier mal die Lösung, melde mich gleich
Bitte warten ..
Mitglied: presidente
19.03.2013 um 11:07 Uhr
find /dateiablage/ -iname "!*" -exec tar Avfz archivsicherung.tar.tgz {} \;

Leider ein Fehler:

find /dateiablage/ -iname "/dateiablage/ -iname "/dateiablage/ -iname "find [-H] [-L] [-P] [-Olevel] [-D help | tree | search | stat | rates | opt | exec] [path...] [expression]" -exec tar Avfz archivsicherung.tar.tgz {} \;" -exec tar Avfz archivsicherung.tar.tgz {} \;" -exec tar Avfz archivsicherung.tar.tgz {} \;
find: warning: Unix filenames usually don't contain slashes (though pathnames do). That means that '-iname `/dateiablage/ -iname /dateiablage/'' will probably evaluate to false all the time on this system. You might find the '-wholename' test more useful, or perhaps '-samefile'. Alternatively, if you are using GNU grep, you could use 'find ... -print0 | grep -FzZ `/dateiablage/ -iname /dateiablage/''.


Danke
Bitte warten ..
Mitglied: Lochkartenstanzer
19.03.2013, aktualisiert um 11:16 Uhr
Vielleicht "\!*" benutzen. (oder '!*')

und im übrigen ist ein "!" in Unixfilenames zu benutzen keine gute Idee.

lks

PS: Sorry für den obigen Tappfuhler im ersten Post. Aber ich gehe davon aus, daß solche "Kleinigkeiten" normalerweise erkannt werden und selbst korrigiert werden können.
Bitte warten ..
Mitglied: presidente
19.03.2013 um 11:16 Uhr
find /dateiablage/ -iname '\!*' -exec tar Avfz archivsicherung.tar.tgz {} \;

dann kommt das:

tar: Cannot concatenate compressed archives
Try `tar --help' or `tar --usage' for more information.

das Gleiche mit "\!*"

Bitte warten ..
Mitglied: Lochkartenstanzer
19.03.2013, aktualisiert um 11:38 Uhr
o.k. Dann mußt Du entweder auf die Kompression verzichten

find  /dateiablage/ -iname '!*' -exec tar Avf archivsicherung.tar {} \; 
oder mit xargs arbeiten

find  /dateiablage/ -iname '!*' | xargs tar cvfz archivsicherung.tar 
lks


PS: Der Befehl man fördert mehr Informationen zu den kommandos zutage. Einfach mal
man man
eintippen. Und natürlich auch die Fehlermeldungen genau lesen. die sagt nämlich, daß nicht der find-befehl das Problem ist.
Bitte warten ..
Mitglied: presidente
19.03.2013 um 11:26 Uhr
Hallo Lochkartenstanzer,

wahrscheinlich stelle ich mich an, aber

find /dateiablage/ -iname '!*' | xargs tar cvfz archivsicherung.tar

Jetzt scheint es schonmal weiterzulaufen,

jedoch sind in der Ordnerstruktur noch z.B. solche Ordner:

Neuer Ordner

mit Leerzeichen


und da kommt der Fehler:


tar: /dateiablage/Neuer: Cannot stat: No such file or directory
tar: Ordner/!dfasdfsd.log: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors


wie packe ich das ein ?

Außderdem wie muß ich das mit dem <copy type=plain>


machen ?

Gruß und 1000 end Dank
Bitte warten ..
Mitglied: 64748
19.03.2013, aktualisiert um 11:47 Uhr
skueneth, Du machst einen grundsätzlichen Fehler, Du kennst beides find und tar unzureichend. Daher solltest Du erstmal herausfinden, wie tar in Deinem Fall funktioniert. Danach finde raus wie find sich mit Deinen Datei bzw. Archivnamen verhält und dann bringe alles zusammen.

Ein Tutorial zum Lesen der Manpages findest Du hier

Wobei ich zugebe, dass die Manpages von tar und find ziemlich umfangreich sind. Daher lese hier
Mehr Informationen zu tar findest Du mit
info tar
dort ist sogar ein Tutorial.

Das, was Lochkartenstanzer schreibt, ist alles richtig! lerne daraus.

Markus
Bitte warten ..
Mitglied: Lochkartenstanzer
19.03.2013, aktualisiert um 11:46 Uhr
Zitat von presidente:
Hallo Lochkartenstanzer,

wahrscheinlich stelle ich mich an, aber

find /dateiablage/ -iname '!*' | xargs tar cvfz archivsicherung.tar

Jetzt scheint es schonmal weiterzulaufen,

jedoch sind in der Ordnerstruktur noch z.B. solche Ordner:

Neuer Ordner

mit Leerzeichen

o.k. Du hast also leerzeichen im den Datei-und Ordnernamen. Da muß man natürlich dafür sorgen, daß die Namen durch single- oder double-Quotes zusammengehalten werden.

Da gibt es verschiedene Möglichkeiten. Eine davon wäre:

find / -iname '!*' -exec echo "\"{}\"" \; 
und das Ergebnis an xargs und tar verfüttern.


Außderdem wie muß ich das mit dem <copy type=plain>

das war ein Tippfehler von mir. sollte der Code-Formatierung dienen.



generell solltet Ihr aber Namenskonventionen festlegen und diese auch überprüfen.

Es gibt zu viele Stolperfallen, wenn man nicht ein wenig auf die Zeichen in Datei und Ordnernamen achtet.

lks
Bitte warten ..
Mitglied: presidente
19.03.2013 um 11:52 Uhr
Hallo, sorry daß ich mich so stelle. Aber das klappt nun schonmal:
find / -iname '!*' -exec echo "\"{}\"" \;

da werden mit die Files und ordner augelistet.

Aber wie übergebe ich das ganze nun an
tar

find /dateiablage/ -iname "\!*" -exec tar Avfz archivsicherung.tar.tgz "\"{}\"" \;

das klappt so nicht, jetzt helft mir bitte
bitte die ganze Zeile...

danke
Bitte warten ..
Mitglied: Lochkartenstanzer
19.03.2013 um 11:59 Uhr
Zitat von presidente:
Hallo, sorry daß ich mich so stelle. Aber das klappt nun schonmal:
find / -iname '!*' -exec echo "\"{}\"" \;

da werden mit die Files und ordner augelistet.

Aber wie übergebe ich das ganze nun an
tar

find /dateiablage/ -iname "\!*" -exec tar Avfz archivsicherung.tar.tgz "\"{}\"" \;

das klappt so nicht, jetzt helft mir bitte
bitte die ganze Zeile...


Weil Du es bist:

 find / -iname '!*' -exec echo "\"{}\"" \; |  xargs tar cvfz archivsicherung.tgz
Ich hatte ja gesagt, verfütter es an xargs und tar. Das macht man überigens mit einer Pipe (0 der senkrechte Strich).

Also:

Hol Dir schleunigst ein Buch über linux, Shell oder gnu-utils wie z.B. die Einführung in die bash-Shell oder das Linux Kochbuch, um Dir grundlagen anzulesen.

Vorkauen ist normalerweise nicht mein Ding.

lks
Bitte warten ..
Mitglied: presidente
19.03.2013 um 12:17 Uhr
Hallo ich danke euch nochmals vielmals. So ein Buch werde ich mir gleich noch bestellen.

Gruß

Stefan
Bitte warten ..
Ähnliche Inhalte
Debian
Alle Dateien eines Ordners in ein .tar.gz Archiv packen
Frage von CreamyCewieDebian2 Kommentare

Hallo! Ich habe ein Verzeichnis /var/test welches einige Dateien enthält. Ich bräuchte nun ein SH-Script welches mir alle Dateien ...

Linux
UNIX oder Linux Server
gelöst Frage von fluppi1981Linux5 Kommentare

Nabend, Ich hab mal versucht Vorteile zwischen beiden Systemen aufzulisten. Zur Auswahl kommen für Unix - HP-UX und für ...

Vmware
SCO Unix unter VMWare 6.0
gelöst Frage von VancouveronaVmware16 Kommentare

Hallo zusammen, ich hab mal eine Frage an die VMWare Fachleute hier: Ich habe eine VMWare Umgebung (ESXi Version ...

Linux
Frage zu uraltem Unix-Format
Frage von dejouleLinux11 Kommentare

Hallo, auch wenn ich hier nicht ganz richtig, bin, aber ich glaube, Linux kommt dem doch sehr nahe. Denn ...

Neue Wissensbeiträge
Linux

Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde

Information von Frank vor 3 StundenLinux12 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 1 TagBatch & Shell9 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 1 TagHumor (lol)6 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 1 TagMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Heiß diskutierte Inhalte
Router & Routing
Zwei Netzwerke erstellen
Frage von bunteblumeRouter & Routing14 Kommentare

Hallo Zusammen, Ich möchte gerne ein backup von einem bestimmten Folder welcher auf dem Server regelmässig synchronisiert wird auf ...

Off Topic
Fachkräftemangel in Deutschland? - Talentschmiede schreibt alle 2 Tage die gleichen Stellen aus
Frage von Penny.CilinOff Topic12 Kommentare

Hallo, haben wir in Deutschland Fachkräftemangel? Die Talentschmiede schreibt gefühlt alle zwei Tage dieselben Stellen aus. Und das schon ...

Linux
Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde
Information von FrankLinux12 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Windows 10
Alle Programme mit bestimmtem Namen automatisch (per GPO) deinstallieren
gelöst Frage von lordofremixesWindows 1012 Kommentare

Hallo zusammen, gibt es eine Möglichkeit, alle Programme beginnend mit z.B. "Dell" im Namen per Script und somit per ...