O curinga terminal do OS X não funciona em alguns caminhos

3

Ok, isso é estranho, espero que alguém aqui possa explicar o que está acontecendo.

Estou usando o OS X 10.9.4 e quero listar arquivos em um diretório (e filtrá-los usando *)

Eu quero procurar por arquivos zip nos diretórios Downloads do meu diretório de usuários e no diretório do meu filho.

Isso mostra todos os arquivos, inclusive os que terminam em .zip: sudo ls /Users/Jamie/Downloads/
Mas quando tento filtrá-lo: sudo ls /Users/Jamie/Downloads/*zip
Eu recebo No such file or directory

Mas esse mesmo comando funciona bem no meu diretório!? sudo ls /Users/Hamish/Downloads/*zip

Na verdade, até isso gera o erro No such file or directory em seu caminho, mas não o meu: sudo ls /Users/Jamie/Downloads/*

    
por Hamish 29.07.2014 / 23:47

2 respostas

3

A expansão do nome do caminho ocorre no momento em que você executa o comando, portanto, seja expandido antes de executar o sudo.

Você pode criar um novo shell dentro do sudo com: sudo sh -c "ls /Users/Jamie/Downloads/*.mp3"

    
por 30.07.2014 / 07:26
3

Ou você pode usar grep para filtrar seus resultados. Então

$ sudo ls -l /Users/other/Library/Keychains/*keychain
ls: /Users/other/Library/Keychains/*keychain: No such file or directory

falhará, mas usar grep funcionará

 sudo ls -l /Users/other/Library/Keychains|grep .keychain
 -rw-r--r--   1 other staff    48K Jan 31 18:27 login.keychain

Além disso, grep permite que você pesquise vários itens com a opção -e .

 $ sudo ls -laRh /Users/other/Library/Logs|grep -e Finder -e Google
  -rw-r--r--   1 other  staff    18K Jan 31 18:27 GoogleSoftwareUpdateAgent.log
  -rw-------   1 other  staff    56K Jan 31 18:27 .Finder_2014-06-25-165714.crash.plist
  -rw-------@  1 other  staff    52K Jan 31 18:27 Finder_2014-06-25-165714.crash

Espero que isso ajude.

    
por 31.07.2014 / 02:46