find . -prune -user "$(id -u)"
Imprimirá .
se o diretório atual pertencer a você.
Você pode fazer:
find . -prune -user "$(id -u)" -exec some command \;
Ou:
if [ -n "$(find . -prune -user "$(id -u)")" ]; then
some command
fi
Para executar some command
apenas se o diretório atual pertencer a você.
Para recuperar o ID do proprietário do diretório atual, POSIXly, você pode fazer:
ownerid=$(LC_ALL=C ls -lnd . | awk '{print $3}')
Ou com zsh
' stat
builtin:
stat -H stat . && ownerid=$stat[uid]
Ou com o GNU find
:
ownerid=$(find . -prune -printf %U)
Ou com o GNU stat
:
ownerid=$(stat -c %u .)
Ou com o BSD stat
:
ownerid=$(stat -f %u .)
Depois de ter esse $ownerid
, você pode compará-lo com o ID de usuário efetivo do processo do seu shell, que pode obter com "$(id -u)"
. Geralmente, é melhor trabalhar com IDs de usuário do que nomes de usuário, pois podem ter mais de um nome de usuário por ID de usuário no banco de dados da conta (e isso evita ter que consultar o banco de dados do usuário).