Como posso criar um arquivo vazio cujo nome começa com um traço? [duplicado]

5

Como podemos criar um arquivo vazio com o nome do unix -stuff . Isso significa que o nome começa com - . Eu tentei com touch -stuff , mas não funcionou.

    
por Elham abbasi 18.10.2011 / 01:18

4 respostas

20

Em geral, a maioria dos utilitários tem opções que começam com - . A maioria desses utilitários tem um recurso que permite especificar um argumento que não é uma opção, fornecendo a opção especial -- . Para esses utilitários, -- significa que nenhum outro argumento é uma opção. Então, no seu caso, você pode usar touch -- -stuff .

Para obter mais informações sobre as convenções gerais que muitos utilitários seguem, consulte Seção 12: "Convenções de Utilidade" do Volume de Definições de Base do Single Unix Specification .

Outra maneira de criar um arquivo vazio é usando o operador de redirecionamento do shell da seguinte forma: > -stuff .

    
por 18.10.2011 / 01:22
15

touch ./-stuff

O que acontece aqui: para nomes de arquivos "usuais", o diretório atual ( ./ ) está implícito e, portanto, desnecessário. No entanto, podemos especificá-lo explicitamente com ./ (é apenas redundante em casos normais); Dessa forma, o argumento não será iniciado com - e não será analisado como uma opção, mas como um nome de arquivo.

    
por 18.10.2011 / 07:46
4

Você também pode usar:

echo -n > -stuff
    
por 18.10.2011 / 09:25
2

Como sua pergunta está relacionada especificamente à criação de um arquivo vazio , saiba que touch tem como objetivo principal "tocar" o registro de data e hora de um arquivo.
Um aspecto secundário de touch é que ele criará um arquivo vazio se o arquivo nomeado não existir.
Isso, obviamente, significa que não sempre criará um arquivo vazio.

Para garantir que você tenha um arquivo vazio, use o operador de redirecionamento > (como mencionado em outras respostas) ou cp -- /dev/null -a

touch permite criar (ou apenas modificar o registro de data e hora) de muitos arquivos de uma só vez.
> e cp só podem manipular um arquivo de cada vez.

    
por 18.10.2011 / 10:21