OK, as primeiras coisas primeiro. O erro que você recebe é irrelevante, significa apenas que um subdiretório específico ( /home/ivana/.cache/dconf
) do seu $HOME
não pertence a você. Isso quase certamente aconteceu porque você executou um aplicativo gráfico com sudo
. A correção simples é:
sudo chown -R ivana /home/ivana/
Isso alterará a propriedade de todos os arquivos e diretórios em $HOME
para seu próprio nome de usuário. Se você pode ter coisas que são de propriedade correta de outro usuário, apenas altere a propriedade do diretório dconf
:
sudo chown -R ivana /home/ivana/.cache/dconf
Agora, dito isso, a maneira de fazer isso corretamente e lidar com nomes de arquivos arbitrários é:
find "$1" -cmin -10 -type f -print0 | head -z -n 10
Isso fará com que find
imprima cada arquivo encontrado com um
em vez de uma nova linha, o que garante que ele funcionará com arquivos cujos nomes contenham caracteres de nova linha. A opção -z
head
de
faz com que ela leia a entrada IFS=
-r
-delimited.
O próximo passo é ler cada um dos arquivos e imprimir o número de linhas que eles possuem:
find "$1" -cmin -10 -type f -print0 | head -z -n 10 |
while IFS= read -r -d '' file; do wc -l "$file"; done
O read
define o separador do campo de entrada como vazio, o \
torna \t
não tratar -d ''
especialmente (assim, read
não se torna uma guia) e %code%
informa %code% para ler %code% -delimited data.