Rufen Sie bei einem Verzeichnis relative Pfade aller Dateien rekursiv ab

1344
devios1

Ich baue eine RPM-Spezifikationsdatei und muss in dem %filesAbschnitt die Dateien aufführen, die relativ zu einem von mir angegebenen Build-Root enthalten sind. Ich habe bereits das zusammengestellte Verzeichnis, das gepackt werden muss - ich muss nur eine Liste relativer Pfade zu allen darin enthaltenen Dateien erstellen.

Dafür verwende ich derzeit find, aber es werden absolute Pfade zurückgegeben.

find $1/codebase -type f ! -name ".*" >> $/rpm.spec 

Ich bin ein bisschen von einem Unix-n00b, also entschuldige ich mich.

Soll ich es an sed oder grep leiten und den ursprünglichen Teil des Pfads entfernen? Ein Beispiel dafür wäre hilfreich.

0

1 Antwort auf die Frage

1
Zoredache

Find gibt Ihnen relative Pfade, wenn Sie beim Ausführen eine relative Spezifikation angeben. Du passierst, $1/codebasewas ich erfahre, ist ein absoluter Pfad. Statt diesen Befehl zu verwenden, probieren Sie cd $1/codebase ; find . -type ...stattdessen etwas .