Se você remover o -path . , mas manter o ! no início, então -type d não será ignorado, sua condição será ! -type d , o que significa "não diretório". Então você consegue o que você pede.
Alguém pode explicar o que find -path significa?
Eu tentei olhar para a página de manual, mas não entendi porque funciona da maneira que funciona com o script que escrevi.
find ! -path . -type d -printf '%T@ %P\n' | sort -nr | head -n3 | awk '{print $2}'
Isso retorna para mim os três últimos diretórios modificados na pasta atual Im in. No entanto, quando eu removo o -path . , ele só retorna arquivos para mim, em vez de pastas. É quase como se -type d fosse ignorado.
Se você remover o -path . , mas manter o ! no início, então -type d não será ignorado, sua condição será ! -type d , o que significa "não diretório". Então você consegue o que você pede.
O comando que você está tentando irá ignorar a pasta atual com o argumento ! -path . . Como você removeu somente -path . , o não-operador ! será aplicado ao argumento subsequente, -type d .
O resultado é que find ignorará todos os diretórios no caminho de localização.