Você pode usar uma bash ou ksh adicionada em seu arquivo shell rc:
mymv(){ echo mv "$1" "$2/${1##*/}_$3"; }
mymv file.csv /home/user backup1
remova o echo
quando os testes forem feitos
Eu mudo com demasiada frequência a localização de alguns arquivos gerados diariamente. O problema é que eu quero mudar seus nomes adicionando apenas os novos caracteres necessários.
O que eu quero é algo assim:
$ mv file.csv /home/user/{something}_backup1
Então eu pude ver:
$ ls /home/user
file.csv_backup1
O que estou fazendo agora é o simples:
$ mv file.csv /home/user/file.csv_backup1
Você poderia dizer "não seja preguiçoso e faça assim", a questão é que os nomes reais dos arquivos têm cerca de 25 caracteres e redigitá-los é realmente irritante.
O passado dado é apenas um exemplo, pode ser um diretório diferente ou um novo texto diferente.
A propósito, estou usando o bash shell
A rota mais simples, IMHO, é usar uma variável:
a=file.csv; mv "$a" ~user/"$a"_backup
Você pode aproveitar a conclusão da tabulação com variáveis, tanto ao defini-las quanto ao usá-las.
Em bash
, você pode tentar o seguinte:
mv file1
. file1
. file1
de volta. /home/user/
. file1
. _backup
Outra solução.
Um pouco grosseiro, mas isso funcionará se todos os arquivos originais tiverem a extensão .csv
e se você quiser mover todos os arquivos .csv
do diretório atual.
for i in *.csv; do
mv $i /home/user;
rename .csv .csv_backup1 /home/user/*.csv;
done
Basta alterar o "usuário" para cada usuário quando necessário.
Você pode criar um script simples na pasta pessoal (ou em qualquer pasta diferente da pasta que contém os arquivos que você pretende mover). O roteiro será assim:
#!/bin/bash
for var in ./*
do
if [ -f "$var" ]
then
mv "$var" /home/user/"$var".backup1
fi
done
cd <the directory your files are in>
e, em seguida, execute este script /home/user
e alterará o nome de acordo spaces
no problem Tags command-line bash rename mv