Estou usando o shell bash. Eu tenho essa matriz representando caminhos de arquivo
MY_FILES=(/path/to/file1 /tmp/abc.txt /tmp/test.sh /path/to/file2 /path/to/file3 /tmp/abc.txt)
Como posso formar uma nova matriz de elementos na qual os caminhos realmente existem no meu sistema de arquivos?
O acima cria uma nova matriz,
existing
, que contém as entradas daMY_FILES
matriz correspondentes aos nomes existentes no sistema de arquivos. Ele faz isso iterando sobre as entradas em sua matriz, testando cada elemento por vez com o-e
teste, o que é verdadeiro se o nome de caminho fornecido existir. Se o nome do caminho atual existir, ele será anexado como um novo elemento no final daexisting
matriz.Se você também deseja garantir que cada nome seja um arquivo normal , altere o
-e
teste para um-f
teste.