De um dos seus comentários , parece que o que você pretende fazer é criar uma lista de nomes de caminho dos arquivos que você gostaria de transferir do sistema remoto para a máquina local usando scp . O problema com isso é que você passa nomes de caminho entre os dois sistemas, o que introduz o risco de que nomes de arquivos que incluam caracteres em branco possam ser desconfigurados.
Se você está procurando uma maneira de transferir todos os arquivos que correspondem a something* de algum lugar abaixo de /home/ubuntu/user/someFolder na máquina remota, você pode usar rsync assim:
rsync -av --include='*/' --include='something*' --exclude='*' \
--prune-empty-dirs \
[email protected]:/home/ubuntu/user/someFolder/ ./target
Isso localizaria e transferiria todos os arquivos correspondentes ao padrão e à estrutura de diretório em que eles residem para a máquina local no caminho ./target .
Os padrões --include e --exclude são aplicados da esquerda para a direita e a primeira correspondência é o que importa:
-
--include='*/' : procure em todos os subdiretórios (diretórios vazios, ou seja, diretórios sem nomes de arquivos correspondentes, não são transferidos devido a --prune-empty-dirs ).
-
--include='something*' : o padrão que combinaria com as coisas em que estamos realmente interessados.
-
--exclude='*' : ignora todo o resto.