Eu sei que há uma maneira melhor de fazer isso, só não estou procurando no lugar certo para descobrir isso.
Eu tenho um número desse tipo de declarações (digamos 1-100, ou uma lista de diferentes nomes de arquivos). Basicamente, estou verificando todos eles e, em seguida, fazendo o mesmo tipo de comando para eles.
if [ -f ~/file1 ]; then
if [ -f ~/Backup/file1 ]; then
rm ~/file1;
# Someday, maybe put a filesize or filedate check as well (investigate eval)
else
cp -ip ~/file1 ~/Backup/file1;
rm ~/file1;
fi
fi
Deveria haver alguma maneira de fazer isso uma função (executar o loop de uma vez com o arquivo 1, depois fazê-lo novamente com o arquivo 2, etc), e não ter que copiar e colar essas coisas repetidas vezes.
Eu gostaria de ter algo claro para novatos, já que uma vez que eu comece a trabalhar, eu provavelmente não voltarei a vê-lo por 5 anos, e quando voltar a ele, provavelmente terei esqueci tudo que não é bem claro. Isso tem a virtude de ser claro no que está acontecendo: P
Eu li algum código que faz isso, disse: "Hmm, isso é interessante, quando eu preciso fazer mais do que 3-4 se-então, eu deveria usar isso." E então, prontamente, não anotou ..
Alguns desses arquivos são: filename001, filename002, ... filename100.
Eu também tenho o mesmo problema para arquivos especificamente nomeados, nesse caso eu realmente gostaria de fazer uma iteração através de uma lista de nomes de arquivos, e apenas adicionar novos nomes de arquivos à lista (ao invés de copiar e colar). / p>
Eu não estou olhando para introduzir nada através da linha de comando, tudo será apresentado no script (para que eu possa testá-lo e, portanto, não posso estragar e digitar algo que eu não queria digitar). A ideia de um arquivo de dados que lista cada nome de arquivo para uma linha, que o script chama, é interessante para mim - mas não tenho certeza de como fazer isso funcionar. Tem um link?
Because this can be a lot easier - and more efficient.
Eu sei que pode ser, mas também tem que ser claro para as pessoas que não programam (ou seja, eu, em 5 anos - quando eu estou começando de um ponto onde eu realmente não sei programar, e terá esquecido muitas coisas no momento em que chegar (se não for entregue a outra pessoa)). Eu basicamente levo as coisas que eu posso entender e brincar com elas até que eu possa abusar delas para os meus propósitos. Neste momento, meus scripts não precisam ser muito eficientes, já que os computadores são rápidos o suficiente para os tipos de coisas que estou fazendo.
Se o arquivo de backup existe, então eu estou apenas excluindo o arquivo atual (se ele existir - se não, eu quero que o script continue na próxima possibilidade). Se o backup não existe, eu estou copiando o arquivo atual (tomara que se eu executar o overquota ou algo assim (outras coisas podem estar fazendo / sugando cota durante o tempo de cópia) ele só irá salvar com um erro, e não ter apagado nada irrecuperável) e, em seguida, excluindo o arquivo atual.
Eu não me importaria de adicionar algo para testar se o arquivo de backup é útil: timestamp (qual deles é mais novo?), tamanho (qual deles é maior?), hash (copiar arquivo completamente e corretamente? ) - mas isso não é necessário agora.