Masowa zmiana uprawnień dla plików i katalogów
Cała sprawa wyszła przy okazji organizowania mojej muzyki. Wprawdzie znalazłem program (Amarok, a dokładniej Amarok + Amarok Web Fronted), który w 100% mnie satysfakcjonuje, problemem okazały się uprawnienia do plików.
W moim katalogu z muzyką jest masa plików. Okazuje się, że nie wszystkie miały jednakowe uprawnienia i nie zawsze mogłem zapisywać w nich poprawione tagi ID3v1.
Nie chciało mi się za każdym razem edytować od nowa kolejnych chmodów dla każdego mp3, dlatego odpaliłem program chmod z parametrem -R, ale szybko żałowałem tej decyzji. Wprawdzie pliki miały dobry chmod (taki jaki chciałem, czyli 644) to nie miałem dostępu do katalogów.
Zależało mi na tym, aby każdy katalog, w folderze z muzyką, otrzymał chmoda 755, a każdy plik 644. Przyszła decyzja o napisaniu skryptu, który by rozwiązał mój problem.
Tak wygląda kod. Nic skomplikowanego. Strasznie się na początku męczyłem. Chciałem zrobić funkcję w bashu, która rekursywnie sprawdzałaby czy napotkała na plik, czy na katalog. Jeśli katalog to chmod 755 i zagłębienie się dalej, jeśli plik to chmod 644. Dopiero w komentarzach znalazłem odpowiedź na problem. W tym miejscu bardzo chciałbym podziękować panom fooshmer i Dex za pomoc
#!/bin/bash
#
find $PWD/* | while read x
do
if [ -d "$x" ]
then
echo "$x - katalog - nowy chmod to 755"
chmod 755 "$x"
else
echo "$x - plik - nowy chmod to 644"
chmod 644 "$x"
fi
done
$ find ./ -type d -print0 | xargs -0 chmod 755
$ find ./ -type f -print0 | xargs -0 chmod 644
?
Możliwe, ale ja nie znam na tyle bash’a aby móc aż tak spore polecenia wpisywać
Prawdę powiedziawszy to ma z baszem wspólne tylko użycie potoku ;p
Tak wiem o tym, ale po prostu nie znam na tyle dobrze tych wszystkich parametrów do programów (a czasami nawet nazw tych programów)
a taaakie coś chciałeś zrobić… trzeba było tak od razu… moja metoda:
chmod -Rc a-rwx,u+rwX,go+rX *
ustawi 644 plikom, 755 katalogom i wydrukuje info odnośnie wszystkich zmian.
Wow… toć mnie teraz zaskoczył ;]
magia, panie, czysta magia!
teraz nawet już nie pamiętam w czym to „duże X” znalazłem swego czasu jak miałem podobny problem z muzyką