O rm funciona em ordem alfabética?

4

Eu tinha muitos arquivos em uma pasta na qual acidentalmente corri rm * antes de interromper.

Parece que os arquivos que começam com a, b e c desapareceram, mas não tenho certeza, pois não sabia o nome de todos os arquivos.

Posso confiar que rm funciona em ordem alfabética para que eu possa saber exatamente quais arquivos foram removidos?

    
por rajat 03.10.2012 / 16:00

2 respostas

7

rm não funciona necessariamente em ordem alfabética, mas funciona na ordem em que você fornece seus argumentos (com -r torna-se mais complicado, mas isso não importa aqui). Se você escreveu exatamente como disse, o * será expandido para todos os nomes de arquivos de maneira alfabética.

Então, sim , você removeu os arquivos em ordem alfabética.

Tente executar

echo *

em um diretório para ver em qual ordem as coisas aparecem. Esta é a mesma ordem que rm * removeria os arquivos.

    
por 03.10.2012 / 16:38
1

Sim, eles trabalham em ordem alfabética.

você pode usar o comando strace para verificar a sequência e como seu kernel está trabalhando internamente. Abaixo está o comando strace que eu usei para o comando rm, ele traduz * para a sequência alfabética.

[email protected]: ~ / scripts / temp / temp $ strace rm -rf *

execve ("/ bin / rm", ["rm", "-rf", "a.txt", "b.txt", "c.txt", "d.txt"], [/ * 43 vars * /]) = 0

< - Eu recortei a saída - >

Where ever * está lá, seu shell bash tentará fornecer todas as combinações nesta ordem. Alguns outros comandos que suportam isso são cp, mv, find etc.

    
por 03.10.2012 / 20:34

Tags