wenn rekursiv ext finden, dann, sonst unter Unix

wenn rekursiv ext finden, dann, sonst unter Unix

Das ist, was ich normalerweise verwende. Aber ich muss rekursiv eine Erweiterung mit then und else finden. Das Problem dabei ist, dass es nicht rekursiv ist.

if ls $HOME/Downloads/*.ext >/dev/null 2>&1
then
    :
else
    :
fi

Antwort1

Verwenden Sie es findanstelle von ls. Wenn Sie GNU find haben, können Sie es verwenden, -quitum nach der ersten Übereinstimmung zu beenden. Überprüfen Sie dann einfach, ob ein Ergebnis zurückgegeben wurde.

Das Skript würde ungefähr so ​​aussehen:

if [ -n "$(find $HOME/Downloads -name '*.ext' -print -quit | head -n 1)" ]
then
    :
else
    :
fi

Verwenden Sie -iname statt -name, um eine Suche ohne Berücksichtigung der Groß-/Kleinschreibung durchzuführen.

verwandte Informationen