![Verwenden von xargs zum Erstellen eines Suchbefehls, der eine Liste von Verzeichnissen aus einer Umgebungsvariablen ausschließt](https://rvso.com/image/83675/Verwenden%20von%20xargs%20zum%20Erstellen%20eines%20Suchbefehls%2C%20der%20eine%20Liste%20von%20Verzeichnissen%20aus%20einer%20Umgebungsvariablen%20ausschlie%C3%9Ft.png)
Ich weiß, wie man bestimmte Verzeichnisse ausschließt von find
:. find <path> ! -path <path to exclude>
Aber das Eintippen kann zu mühsam sein, wenn ich viele Verzeichnisse ausschließen muss, oder es lässt sich einfach nicht verwenden, wenn die Liste der auszuschließenden Verzeichnisse nicht im Voraus bekannt ist.
Angenommen, ich habe eine Liste von Verzeichnissen in einer Variablen gespeichert. Kann ich damit xargs
einen Befehl konstruieren find
, der jedes dieser Verzeichnisse ausschließt? Und wenn ja, wie?
Antwort1
Im Fall der „einfachen“ Variablen: Beachten Sie, dass die Verzeichnisse keine Leerzeichen enthalten dürfen, da diese sie innerhalb der Variable trennen.
excludes='dir1 dir2 dir3'
findexcl=
set -f
for p in $excludes
do
findexcl="$findexcl ! -path $p"
done
echo find ... $findexcl ...