Tente:
find /mystuff/temp/videos -type d ! -name 'folder1' -exec chmod 777 {} +
Uma observação de que você não deve definir a permissão do 777, é um grande buraco na segurança.
Eu preciso alterar as permissões de pasta e arquivo em todas as subpastas, exceto para uma pasta. Atualmente, estou executando vários comandos find / exec para fazê-lo funcionar.
e.g. find /mystuff/temp/videos -type d -exec chmod 777 {} \;
A estrutura de pastas seria algo como (com as permissões necessárias que eu preciso):
mystuff
-> folder1 (ignored)
-> subfolder1 (permissions changed)
-> folder2 (permissions changed)
-> folder3 (permissions changed)
É possível? Se sim, com que find
etc comando?
Você pode adicionar o teste -wholename
com um não ( !
) para remover o diretório. Por exemplo:
find /mystuff/temp/videos ! -wholename 'mystuff/folder' -type d -exec chmod 777 {} \;
Da página do manual:
-wholename pattern File name matches shell pattern pattern. The metacharacters do not treat '/' or '.' specially; so, for example, find . -wholename './sr*sc' will print an entry for a directory called './src/misc' (if one exists).
O padrão precisa estar entre aspas se você usar curingas ( *
) para protegê-lo do shell.