Renomeei alguns arquivos em um script em lote. Existe uma maneira de desfazer as alterações sem precisar renomeá-las novamente?
O Linux fornece alguma maneira nativa de undo
ing?
command-line
lazer
fonte
fonte
Respostas:
O Linux (como outras unidades) não fornece nativamente um recurso de desfazer. A filosofia é que, se se foi, se foi. Se fosse importante, deveria ter sido feito backup.
Existe um sistema de arquivos com fusível que mantém automaticamente cópias de versões antigas: copyfs , disponível em todas as boas distribuições. Obviamente, isso pode usar muitos recursos.
A melhor maneira de se proteger contra esses acidentes é usar um sistema de controle de versão (cvs, bazar, darcs, git, mercurial, subversão, ...). Leva um pouco de tempo para aprender, mas vale a pena demais a médio e longo prazo.
fonte
Infelizmente não.
fonte
-i
opçãorm
ativada por padrão. Meus sistemas Unix não devem segurar minha mão.Não, não há desfazer mágico em nenhum Unix. O Unix assume que você sabe o que está fazendo. Para suporte ao Desfazer, use um VCS (seu editor de texto provavelmente também o possui).
A maioria dos sistemas de arquivos não tem a capacidade de fazê-lo de forma transparente.
A máquina do tempo e a restauração do sistema no Mac e no Windows, respectivamente, são apenas sistemas de controle de backup / alteração.
fonte
Não há desfazer na linha de comando. No entanto, você pode executar comandos como
rm -i
emv -i
. Isso solicitará um "você tem certeza?" pergunta antes de executar o comando.Também é possível adicionar um alias para um script de inicialização (por exemplo,
~/.bashrc
ou/etc/bash.bashrc
):Editar: pelas sugestões abaixo, removi meu conselho para alias os comandos padrão. Em vez disso, ele introduz novos comandos agora).
fonte
mv -i
solicita apenas quando substituir um arquivo (o que o torna útil e não desagradável). Na mesma linhaalias cp='cp -i'
,.A razão pela qual os sistemas Linux / Unix não têm uma exclusão excluída decorre da maneira como a maioria dos sistemas de arquivos armazena suas informações. As meta-informações do arquivo são todas armazenadas na frente do disco, com referências aos inodes no restante do disco. Normalmente, a maioria dos sistemas de arquivos aloca 10 blocos para um arquivo nessa meta-área. Os 7 primeiros referem-se aos 7 primeiros inodes. Os dias 8 e 9 vão para listas de inodes (blocos duplamente vinculados) e o 10º para uma lista de listas de listas (blocos vinculados tripply). Isso varia de sistema para sistema de arquivos (ext4, jfs, xfs etc.), mas essas listas de blocos geralmente podem endereçar tamanhos de arquivo de 2 GB a vários TB.
Porém, como todas essas informações são armazenadas na frente do disco, quando um arquivo é apagado, não há como referenciar inodes no disco para quais metadados a que eles pertencem. Por outro lado, o FAT32 e o NTFS realmente armazenam algumas informações de cabeçalho nos arquivos, facilitando a identificação de quais arquivos um conjunto de blocos deve pertencer (desde que esse espaço ainda não tenha sido recuperado por arquivos mais recentes). No trabalho do Linux, quando você exclui algo, quase sempre é a primeira coisa a ser substituída imediatamente por novos dados para obter eficiência.
fonte
Se você realmente deseja desfazer um recurso, use o controle de origem. O Subversion realmente funciona muito bem em uma máquina de usuário único. Eu o uso para controlar todos os meus arquivos pessoais no meu sistema doméstico. Parece exagero, até um desastre, um script desonesto ou um erro de digitação na linha de comando.
fonte
rm -r .
embora. ;)rm -r project.git
. Felizmente, se você manter uma outra versão em um servidor remoto que é improvável que isso aconteçarm -r .
. Realmente estúpido da minha parte.Uma coisa que gosto de adicionar ao meu .bashrc é uma função de copiar e remover. Algo como:
Mas você precisa adquirir o hábito de digitar cprm e não rm.
Obviamente, você precisará manter-se no topo da área excluída se tiver espaço em disco limitado.
fonte
"$1"
.O GitFS é um sistema de arquivos baseado em fusível, que calcula automaticamente
diff
s entre versões e permite restaurar / navegar por elas.Página da Web: https://www.presslabs.com/gitfs
Documentos: https://www.presslabs.com/gitfs/docs/usage/
fonte