Acredito que o comando que você está procurando para encontrar todas as pastas que pertencem a um usuário específico seria:
sudo find / -type d -uid $(id -u <username>) 2>/dev/null > filename.txt
Vamos detalhar esse comando.
sudo
significa executar o comando como um usuário elevado.
find
é o comando real que estamos executando e, é claro, estamos procurando por algo. A execução de man find
exibirá as man pages do comando find
mostrando mais opções disponíveis.
/
é o ponto de partida em que find
começará a procurar. find
é uma aplicação recursiva que significa que irá procurar em todas as pastas.
-type d
significa que queremos que ele retorne apenas diretórios. -type f
significaria arquivos.
-uid $(id -u <username>)
queremos o número UID do usuário do comando sub-shell de id -u <username>
. Colocar o comando no $()
é a sub-casca que nos permite pegar a saída do comando. Se você executou o comando por si só como id -u root
, ele retornará um 0
, já que é o UID do usuário raiz. Então, a própria opção seria parecida com -uid 0
, já que o comando sub-shell retornaria.
2>/dev/null
significa suprimir mensagens de erro e enviá-las para /dev/null
, o que significa que você não verá a saída dos erros.
> filename.txt
é para onde queremos enviar a saída em vez da tela. Isso também pode ser substituído por | tee -a filename.txt
, o que permitirá que você veja a saída na tela, além de criar um filename.txt
contendo o mesmo material que você viu na tela.
Espero que isso ajude!