zacząłem z tym:Jak zrobić coś dla każdego pliku w katalogu używając bash?
command *
Ale to nie działa, gdy katalog jest pusty; * wieloznacznik staje się dosłownym "*" znakiem. Więc zmieniłem to na:
for i in *; do
...
done
który działa, ale znowu nie, jeśli katalog jest pusty. Użyłem ls:
for i in `ls -A`
, ale oczywiście, nazwy plików z spacji w nich się podzielić. Próbowałem sklejaniu na przełączniku -Q:
for i in `ls -AQ`
który powoduje, że nazwy jeszcze zostać podzielona, tylko o charakterze cytatem na początku i na końcu nazwy. Czy brakuje tu czegoś oczywistego, czy jest to trudniejsze, niż powinno?
Głupie nazwy plików systemu Windows ze spacjami! Zamierzam zostać wbity za to, ale ...moja rada dla współpracowników dotycząca skryptów: jak tylko twój skrypt ma "jeśli" lub "kiedy", czas odłożyć "powłokę" i odebrać "perl" :-(Jestem pewien, że jest jakiś masochistyczny sposób na zrobienie tego Nawiasem mówiąc, rozwiązanie Bombe find -exec musi ograniczać głębokość, więc podkatalogi również nie są pobierane – Roboprog