2017-01-13 9 views
0

Wie kann eine Find-Anweisung hergestellt werden, um den führenden Schrägstrich von absoluten Pfadnamen zu entfernen und Elemente zum Teer als relative Pfadnamen in hinzufügen Um den unerwünschten Fehler zu vermeiden: "tar: Entfernen von führenden`/'von Mitgliedsnamen "?Find/SED absoluten Pfad in relativen Pfad innerhalb einer einzelnen Zeile tar Anweisung für Crontab konvertieren

Die aktuelle Anweisung:

# tar -zcvf /root/TEST1-strip-slash-find-statement.tar.gz `find /root/test -mmin -1450 -print` 

erzeugt die folgende Ausgabe auf Ubuntu 16.04 LTS bash

tar: Removing leading `/' from member names 
/root/test/ 
/root/test/file2.txt 
/root/test/file3.txt 
/root/test/file1.txt 
/root/test/file4.txt 
tar: Removing leading `/' from hard link targets 
/root/test/file2.txt 
/root/test/file3.txt 
/root/test/file1.txt 
/root/test/file4.txt 

Suche sendet Schrägstriche zu Teer Shell: Teer: Entfernen von führenden `/‘ von Mitglied Namen

Wie kann die find-Anweisung überarbeitet werden, um zuerst die führenden Schrägstriche von den absoluten Pfadnamen zu entfernen, dann senden Sie die relativer Pfadname zu tar?

Wenn dieser Befehl von crontab ausgeführt wird, führt der führende Schrägstrichfehler dazu, dass zahlreiche E-Mails über tar gesendet werden: Entfernen von führenden `/ 'aus Mitgliedsnamen. I Es ist notwendig, weiterhin E-Mails für andere Fehler zu empfangen. Daher ist das Deaktivieren der E-Mail-Übertragung mit dev/null oder mailto = "" keine Option.

Antwort

1

Um loszuwerden „tar: Entfernen von führenden` /‘von Mitgliedsnamen“:

-C / Hinzufügen und Entfernen von / von Ihren Pfaden führt.

tar -C/-zcvf /root/TEST1-strip-slash-find-statement.tar.gz `find /root/test -mmin -1450 -print | sed 's|^/||'` 
+0

Reines Genie, danke! – ml48603

Verwandte Themen