Como usar o teste de arquivo para verificar se um arquivo já existe em um diretório

0

Estou tentando escrever um script que pergunte ao usuário se ele tem certeza de que deseja mover um arquivo para um determinado diretório. O script precisa verificar se o arquivo já existe no diretório de destino e, em caso afirmativo, pergunta ao usuário se ele deseja substituir o arquivo existente pelo arquivo que está tentando mover.

Como o arquivo deve ser testado na minha declaração if? No momento eu tenho

if [[-e / targetdirectory]]; então ........

mas isso não parece ser a solução correta?

    
por HaDoMin 02.05.2016 / 18:26

2 respostas

1

O teste que você está procurando é:

[[ -f /path/to/file ]]

em que /path/to/file é o caminho para o arquivo que você está testando para ver se ele existe. Você pode colocar este teste em um condicional usando (fornecido DEST_DIR é o diretório de destino para o arquivo SRC_FILE ):

if ! [[ -f DEST_DIR/file ]]; then
  mv SRC_FILE DEST_DIR
fi

onde ! retorna verdadeiro é o arquivo não existe. Isso moverá o SRC_FILE para DEST_DIR , se não já existir em DEST_DIR .

    
por 02.05.2016 / 18:54
-1

Tente:

if [ -e filename ]; then 
# something
fi

com apenas um colchete

    
por 02.05.2016 / 19:01