Jak znaleźć wszystkie pliki w katalogu i podkatalogach i uruchomić na nich polecenie?
Na przykład,
find . -type f -name "*.txt"
znajdzie wszystkie pliki txt i:
find . -type f -name "*.txt" | gedit
wysyła go do gedit, ale w pliku tekstowym. Chcę, aby gedit otworzył wszystkie pliki tekstowe.
linux
command-line
xyz
źródło
źródło
{}
Stoi na bieżący nazwy pliku, a średnik jest właśnie zakończenia polecenia. Ukośnik odwrotny i otaczające go cudzysłowy mają jedynie na celu zapobieganie rozszerzaniu powłoki.find . -type f -name "*.txt" -print0 | xargs -0 gedit
źródło
man find
lubman xargs
,/
aby wyszukać daną flagę. Dokumentacja jest dość dobra, powinna odpowiedzieć na twoje pytania.-print0
wypisuje znak NULL po każdym wpisie,-0
oczekuje , że wpisy zostaną rozdzielone znakiem NULL. Jest to najbezpieczniejszy sposób radzenia sobie z trudnymi nazwami.