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.