Usando comandos do linux com arquivos “symbol-named”

0

Como posso usar vários comandos do Linux, como cat , ls , touch , more , less ... com o arquivo nomeado como símbolos como - / -- e assim por diante?

Obrigado!

    
por peperunas 23.04.2014 / 11:55

2 respostas

3

Uma barra / não pode sempre aparecer no nome do arquivo, porque é o separador de caminho.

Quando um nome de arquivo começa com um traço, os programas normalmente tentam interpretá-lo como uma opção, e há duas maneiras de evitar isso:

  • Use a opção especial -- que significa "tudo depois disso será apenas nomes, não opções". Por exemplo, se você tiver arquivos com o nome -rf e --hello-- , poderá usar:

    rm -- -rf --hello--
    
  • Ou, mais simplesmente, faça os nomes não começarem com um traço , dando caminhos completos para eles. Por exemplo, você pode especificar que eles estão em . (o diretório atual), terminando com:

    rm ./-rf ./--hello--
    

    Ou você pode usar um caminho completo:

    rm /home/Krishath/-rf /home/Krishath/--hello--
    

O outro caso é quando há símbolos especiais no meio de um nome ( - não é especial; $ seria especial).

  • Primeiro, tente "escapar" com um \ . Por exemplo, se você tiver um arquivo chamado wei"rd$na'me , use:

    cat we\"ird\$na\'me
    

    Isso funciona com tudo, incluindo espaços, e é a maneira mais fácil quando você tem apenas um ou dois símbolos para lidar.

  • Outro método é colocar aspas em torno dele. Infelizmente, citar em shells de linha de comando é um pouco confuso - às vezes, tanto 'name' como "name" trabalham, às vezes apenas um deles.

    (Por exemplo, os símbolos especiais | ou < podem ter aspas duplas, mas $ ou ' não podem. Por outro lado, aspas simples funcionarão com tudo exceto quando o próprio nome do arquivo contiver uma única aspas.)

    No entanto, se o nome do arquivo tiver espaços, aspas certamente serão mais fáceis:

    mv "Some long file name.txt" ~/trash
    
por 23.04.2014 / 12:08
0

Para delimitar a lista de opções, use -- ou seja, digite o seguinte comando:

ls -l -- *.txt

link

    
por 23.04.2014 / 12:04

Tags