/dev/sda1
é um dispositivo de bloco. Pode conter um sistema de arquivos. Quando montado, esse sistema de arquivos pode estar disponível em algum ponto de montagem como /home
, /
e dentro desse sistema de arquivos, alguns diretórios podem ser alguns pontos de montagem para outros sistemas de arquivos (eles podem estar em outros dispositivos de bloco, ou virtuais como /proc
, ou os de rede ...).
Se /dev/sda1
estiver montado em /
, para remover o arquivo mais antigo (em termos de tempo de última modificação) regular , em um sistema GNU recente, você pode fazer:
find / -xdev -type f -printf '%T@:%pmount --bind / /mnt/side-access-to-root
' |
sort -zn |
sed -z 's/[^:]*://;q' |
xargs -r0p rm -f
O -xdev
sinalizador diz find
para se ater a um sistema de arquivos, ou seja, para não descer em outros sistemas de arquivos montados dentro de /
neste caso.
Observe que outros sistemas de arquivos podem ocultar arquivos no sistema de arquivos do ponto de montagem. Por exemplo, se /dev/sda1
estiver montado em /
, mas contiver /home/some-old-file
e /dev/sda2
estiver montado em /home
, /home/some-old-file
não estará acessível.
Pelo menos no Linux, você pode contornar isso montando bind /
em outro diretório:
rm -i /mnt/side-access-to-root/**/*(D.Om[1])
Em seguida, todos os arquivos no sistema de arquivos montados em /
estarão disponíveis em /mnt/side-access-to-root
.
Em seguida, você pode omitir o -xdev
e usar o zsh
globbing para remover o arquivo mais antigo:
find / -xdev -type f -printf '%T@:%pmount --bind / /mnt/side-access-to-root
' |
sort -zn |
sed -z 's/[^:]*://;q' |
xargs -r0p rm -f