Polecenie wykonania cyklicznego chmod, aby wszystkie pliki .sh w katalogu były wykonywalne?

13

Próba wykonania rekursywnego chmod na wszystkich plikach .sh w katalogu, aby umożliwić ich wykonanie

Arunava
źródło
Zajrzyj findi może xargs.
fkraiem

Odpowiedzi:

25

Aby to umożliwić, możesz użyć findpolecenia i wyszukać wszystkie pliki z .shrozszerzeniem, a następnie uruchomić chmodpolecenie na każdym znalezionym pliku :

find /directory/of/interest/ -type f -iname "*.sh" -exec chmod +x {} \;

Informacja:

  1. -type f: Tylko normalne pliki (pomiń katalogi, dowiązania symboliczne, nazwane potoki i gniazda oraz specjalne pliki znalezione w / dev)
  2. -iname: Ignoruj ​​wielkość liter w nazwie
  3. "*.sh": Globbing, mówi findpoleceniu, aby szukało plików z rozszerzeniem „.sh”
  4. -exec chmod +x {}: Nakazuje findkomendie wykonanie chmodkomendy na każdym znalezionym pliku. Uczynienie każdego pliku wykonywalnym
  5. \;: Wskazuje koniec polecenia
George Udosen
źródło