Problemas com mv e adicionando a data

3

Eu quero poder mover o $ oldfile para minha pasta de backup e adicionar a data ao nome do arquivo. Então eu tentei isso ...

mv $oldfile /home/u0146121/backupfiles/$oldfile_$(date +%F-%T)

Isso só me dá esse nome de arquivo de saída. (sem nome de arquivo orignal)

2013-07-11-10: 22: 25

Então percebi o possível problema do método acima. Eu tenho um loop de leitura enquanto lê um arquivo de texto de nomes de caminho para outros arquivos que eu queria comparar. Então, por exemplo, $ oldfile é na verdade =

 $ cat oldfiles.txt
 /home/u0146121/OldLogFiles/file2.txt

Então ... Eu quero poder mover o arquivo2.txt e apenas manter o nome do arquivo2.txt e adicionar a data a ele também.

    
por mkrouse 11.07.2013 / 17:56

2 respostas

7

O shell vê a variável $oldfile_ , que é indefinida. Você pode corrigir isso usando ${oldfile}_ .

Mas, você realmente quer manter os caminhos para o arquivo antigo? Se não, use

mv $oldfile /home/u0146121/backupfiles/${oldfile##*/}_$(date +%F-%T)
    
por 11.07.2013 / 18:01
0

Esta é a minha solução para adicionar um carimbo de data / hora ao mover arquivos no bash

#!/usr/bin/env bash

cd "FILES_LOCATION"
COPYDIR="NEW_FILE_LOCATION"

for file in *.FILE_EXTENSION; do
        NEWAPPEND=$(date +%s)
        cp $file "$COPYDIR"/"$NEWAPPEND"$file
        rm $file
done
    
por 30.06.2016 / 19:54