GNU/Linux >> Znalost Linux >  >> Linux

Můžete změnit oprávnění ke všem souborům kromě jednoho adresáře v Linuxu?

Za předpokladu, že chcete nastavit bit oprávnění 755 rekurzivně pro obsah složek ve vašem aktuálním pracovním adresáři, kromě obsahu složky nazvané "nameOfFolderToBeExcluded" :

 chmod 755 -R $(ls | awk '{if($1 != "nameOfFolderToBeExcluded"){ print $1 }}')

Můžete použít find pro vyhledání všech souborů, které neodpovídají danému názvu souboru a exec příkaz pro všechny takové soubory nalezené jako:

Za předpokladu, že potřebujete vyloučit adresář test a všem ostatním souborům a adresářům udělte oprávnění 755 k souboru. To by bylo provedeno z vrcholu stromu.

find ! -name test -exec chmod 755 {} \;

Testováno

[email protected]:$ touch a1.txt a2.txt a3.txt test
[email protected]:$ ls -lrt
total 0
-rw-rw-r-- 1 mtk mtk 0 Sep 17 23:55 test
-rw-rw-r-- 1 mtk mtk 0 Sep 17 23:55 a3.txt
-rw-rw-r-- 1 mtk mtk 0 Sep 17 23:55 a2.txt
-rw-rw-r-- 1 mtk mtk 0 Sep 17 23:55 a1.txt
[email protected]:$ find ! -name test -exec chmod 777 {} \;
[email protected]:$ ls -lrt
total 0
-rw-rw-r-- 1 mtk mtk 0 Sep 17 23:55 test
-rwxrwxrwx 1 mtk mtk 0 Sep 17 23:55 a3.txt*
-rwxrwxrwx 1 mtk mtk 0 Sep 17 23:55 a2.txt*
-rwxrwxrwx 1 mtk mtk 0 Sep 17 23:55 a1.txt*
[email protected]:$ 

Oprávnění souboru pro soubor test zůstal nezměněn. Totéž platí pro adresáře.


Jaká skořápka?

Pokud používáte bash (pravděpodobně pokud používáte Linux), můžete se podívat na extglob, který vám poskytuje více možností pro globování, včetně "negative glob" !()

shopt -s extglob
chmod 774 !(file-to-ignore)

Linux
  1. Jak odebrat všechny soubory ve složce kromě jednoho konkrétního souboru v systému Linux

  2. 9 Linuxových adresářů, které musíte zálohovat, a jeden, který byste neměli

  3. Odebrat všechny soubory/adresáře kromě jednoho souboru?

  1. Použijte Najít k nalezení určitého adresáře a odstranění všech souborů v něm kromě jednoho adresáře?

  2. Přesuňte všechny soubory kromě jednoho

  3. Jak změnit všechny výskyty slova ve všech souborech v adresáři

  1. Chcete-li změnit oprávnění pro adresář a soubory

  2. Jak najít soubor v Linuxu ve všech adresářích rekurzivně

  3. Jak přesunout všechny soubory (včetně skrytých) z jednoho adresáře do druhého?