Czy istnieje sposób zmiany uprawnień do wszystkich plików / katalogów oprócz jednego katalogu w jednym poleceniu wiersza poleceń systemu Linux?
7
Czy istnieje sposób zmiany uprawnień do wszystkich plików / katalogów oprócz jednego katalogu w jednym poleceniu wiersza poleceń systemu Linux?
grep -v "directory to exclude"
Odpowiedzi:
Zakładając, że chcesz ustawić rekursywnie bit uprawnień 755 dla zawartości folderów w bieżącym katalogu roboczym, oprócz zawartości folderu o nazwie „nameOfFolderToBeExcluded” :
źródło
Możesz użyć
find
do wyszukiwania wszystkich plików, które nie pasują do podanej nazwy pliku iexec
polecenia dla wszystkich takich plików znalezionych jako:Zakładając, że musisz wykluczyć katalog
test
i dać uprawnienia do plików 755 do wszystkich innych plików i katalogów. Zostanie to wykonane z góry drzewa.Przetestowany
Uprawnienia do pliku
test
pozostały niezmienione. To samo dotyczy katalogów.źródło
mkdir test
+touch a1.txt a2.txt a3.txt
, a następnie wykonaj polecenie.Jaka skorupa?
Jeśli korzystasz z bash (prawdopodobnie na Linuksie), możesz sprawdzić extglob, który daje więcej opcji globowania, w tym „negatyw glob”
!()
źródło
Używając
find
prostszego w ten sposób:W moim przypadku było to:
W ten sposób rekursywnie zmieniłem grupę w folderze / danych / projekcie, z wyjątkiem rekursywnie wszystkich folderów „.svn”.
źródło
Jeszcze łatwiejszy sposób za pomocą podstawowych poleceń:
źródło
Korzystam z poniższego polecenia, da pliki 644 i katalog 755 wszystkim plikom i katalogom w obecnym katalogu roboczym, ale wykluczy katalog var, aby zapewnić uprawnienia.
źródło