Acabei de perder uma pequena parte da minha coleção de áudio, por um erro estúpido que cometi. :-(
Felizmente eu tinha um backup bastante recente, mas ainda era irritante. Além de você, o outro culpado que fez o dano foi mv
, que mostrará o seguinte:
Os arquivos de áudio tinham um certo esquema:
ARTIST - Some Title YY.mp3
em que YY
é a especificação de ano com dois dígitos.
mkdir 90<invisible control character>
(Até o momento, eu não sabia que eu tinha realmente digitado um terceiro caractere em excesso que era invisível ...!))
Em vez de ter tudo em um diretório, eu queria ter todas as músicas dos anos 90 em um diretório. Então eu digitei:
find . -name '* 9?.mp3' -exec mv {} 90 \;
Não é tão difícil entender a ideia do que aconteceu eh? : - >
O resultado (desastroso) era um diretório virgem empty chamado '90 algo '(com algo sendo o caractere de controle "invisível") e um único arquivo chamado '90', sobrescrito n vezes.
TODOS OS ARQUIVOS FORAM IDENTIFICADOS. : - (((obviamente)
Desejo mv
ter verificado no tempo se a assinatura do "arquivo" de destino (lembre-se em * NIX: Tudo é um arquivo ) começa com d------
(ex. drwxr-xr-x
). E, claro, se o destino existe em tudo. Há uma variante do cenário acima, quando você simplesmente esqueceu para mkdir
do diretório primeiro. (mas claro, você assumiu que está lá ...)
Até mesmo nosso sistema operacional que odeia animais de estimação começando com o W FAZEM ISSO. Você começa mesmo solicitado para especificar o tipo de destino (arquivo? Diretório?) Se você pedir por ele.
Por isso, estou pensando se nós * NIXers ainda temos que nos escrever um " mv
scriptlet" apenas para evitar esses tipos de surpresas indesejadas.