Tenho a infelicidade de ter um histórico do MS-DOS - mas pelo menos isso me faz apreciar o quanto o Linux é mais poderoso. Eu tenho trabalhado para melhorar meu Linux-Fu, mas há algumas coisas que poderiam ser feitas com o DOS que não sei ao certo como realizar com mais facilidade com o Linux:
Renomeando vários arquivos - usando dois curingas
c:\> dir
Directory of c:\
file1.txt
file2.txt
file3.txt
file4.txt
c:\>rename *.txt *.bak
c:\> dir
Directory of c:\
file1.bak
file2.bak
file3.bak
file4.bak
Eu sei que poderia usar find -exec
aqui, mas é possível usar uma sintaxe mais curta - talvez mv
com alguns sinalizadores ou sintaxe especiais? Eu acho que a chave para isso é o segundo *
curinga, pois o linux não deve ter um problema com o primeiro (ou seja, eu sei como selecionar os arquivos que quero renomear usando curingas)
Renomeando um único arquivo - usando um curinga
c:\> dir
Directory of c:\
file1.txt
c:\>rename file1.txt *.bak
c:\> dir
Directory of c:\
file1.bak
Isso seria especialmente útil ao renomear nomes de arquivos longos e pesados. Eu pensei que talvez eu pudesse usar mv file1.txt $1.bak
para terminar com o file1.txt.bak
que também seria aceitável, mas não tenho certeza se você pode referenciar um $1
parâmetro inline com um comando shell. Novamente, neste caso específico, é conveniente saber como o ms-dos bastardiza o *
curinga para ser usado como uma espécie de captura / substituição correspondente para parte do nome do arquivo.
Filtrando Listagens de Diretórios com um Curinga
c:\> dir
Directory of c:\
file1.txt
file2.txt
file3.txt
file4.txt
text.txt
\temp (directory)
c:\> dir file*
Directory of c:\
file1.txt
file2.txt
file3.txt
file4.txt
c:\> t*
Directory of c:\
text.txt
\temp (directory)
Não sei ao certo qual é a sintaxe certa para fazer isso ls
ou se é mesmo possível. Se eu fiz algo como ls t*
isso irá recursar em diretórios começando com t
. Minha solução alternativa está usando find . --max-depth 1 -iname "t*"
ou algo parecido ls -al | grep t
- nenhum dos quais é tão curto e simples quanto dir t*
é.
Finalmente, sei que posso configurar aliases para tornar esses comandos longos mais curtos, mas eu gostaria de aprender um pouco sobre o linux-fu pronto para fazer essas coisas, porque às vezes você está conectado a um sistema remoto ou trabalhando em uma nova máquina.
Então, como pode I mv
e ls
arquivos da mesma forma que eu costumava dir
e rename
arquivos?