cp comando não funciona com curingas no Mac OS X

5

Estou usando o seguinte comando em uma máquina Mac OS X:

cp "/Users/username/Desktop/silverlock-dev/silverlock/../3rdparty/botan-build-desktop/src/libBotan*" "/Users/username/Desktop/silverlock-dev/silverlock-build-desktop/silverlocklib/../bin"

No entanto, obtenho:

cp: /Users/username/Desktop/silverlock-dev/silverlock/../3rdparty/botan-build-desktop/src/libBotan*: No such file or directory

Existem claramente 4 arquivos nesse diretório chamados:

libBotan.1.0.0.dylib
libBotan.1.0.dylib (symlink to first file)
libBotan.1.dylib (symlink to first file)
libBotan.dylib (symlink to first file)

Se eu soletrar o nome completo do arquivo no comando copy, ele funcionará bem, mas eu preciso poder usar curinga como parte de um processo de compilação. Lógica e razão me dizem que isso deve funcionar sem problemas. Estou sentindo falta de algo simples?

    
por Jake Petroules 08.08.2010 / 00:31

2 respostas

10

Quando você coloca o * entre aspas, ele espera que seja o nome literal do arquivo em vez de fazer uma expansão correspondente a todas. Basta tirar as aspas e isso vai funcionar. Além disso, confira superuser.com, que é onde as perguntas são assim.

    
por 08.08.2010 / 00:34
1

Quando o shell expande curingas em sua linha de comando, ele primeiro é dividido em espaços, e expande curingas. Os nomes de arquivos expandidos (que podem conter espaços) são passados como um argumento completo para o comando ( cp ).

Observe que o comando ( cp neste caso) nunca vê as aspas que você usa na linha de comando do shell e não divide seus próprios argumentos nos espaços. Ele recebe uma lista de strings não citadas, cada uma das quais pode conter espaços.

    
por 08.08.2010 / 00:39

Tags