o que está “passando um argumento de nome de arquivo”?

0

Eu tenho me ensinado a linha de comando do Linux através de um livro em pdf, e depois que o autor explica como usar cat e > para criar um arquivo de texto, ele diz:

We see that the result is the same as passing a single filename argument.

e eu realmente não sei o que ele quer dizer, apesar do fato de eu não ter pulado nenhuma parte do livro. Ele está apenas falando em colocar argumentos no terminal? Se este é o caso, ainda não sei o que ele quer dizer.

EDITAR

aqui está o parágrafo inteiro:

Using the “<” redirection operator, we change the source of standard input from the keyboard to the file lazy_dog.txt. We see that the result is the same as passing a single filename argument. This is not particularly useful compared to passing a filename argument, but it serves to demonstrate using a file as a source of standard input.

    
por thinksinbinary 09.10.2015 / 02:30

1 resposta

2

Você deve passar (argumentos)

" Passando um argumento " significa adicionar um parâmetro após um comando específico. O programa lançado por esse comando se comportará consequentemente.

Como exemplo, o comando " cp " é usado para copiar um arquivo e requer dois argumentos. Em primeiro lugar, o FILE SOURCE e, em segundo lugar, o DESTINATION FILE (ou diretório de destino) . Por favor, note que a ordem da sintaxe é muito importante aqui.

cp <SOURCE FILE> <DESTINATION FILE>

Vamos supor que você queira copiar " file.txt " para " copy_of_file.txt ". Você tem que executar o comando:

cp file.txt copy_of_file.txt

Ele criará um novo arquivo, no mesmo diretório (o diretório do qual você executou o comando, onde o arquivo de origem " arquivo.txt " deve estar)

Tanto o FILE FILE como o DESTINATION FILE são argumentos passados para o comando "cp".

Precisa de alguma ajuda?

Se você quiser saber quais ou quantos argumentos um comando precisa ou quais argumentos opcionais aceitos, você pode fazer:

<command> --help

por exemplo:

cp --help

ou

cat --help

Ele exibirá o "Como usar seu comando" no seu terminal.

A curiosidade não mata o gato

Vamos dar uma olhada no comando do cat . Se você executar cat com um único argumento, digamos um arquivo de texto:

cat my_file.txt

Ele mostrará o conteúdo desse arquivo no terminal.

Se você executar o cat com dois argumentos, ele exibirá o conteúdo de ambos os arquivos:

cat my_first_file.txt my_second_file.txt

O operador de redirecionamento ">"

Agora, o > ( operador de redirecionamento ) parece um pouco mais complexo, mas na verdade é muito simples.

É um redirecionamento. Você precisa ver tudo o que seu terminal exibe como saída de um comando. A saída geralmente vai para o terminal. Se você correr:

cat my_file.txt

O comando é ' cat ', o argumento é "meu_arquivo" e a saída é o conteúdo desse arquivo. A saída vai para o terminal. Bem, quando você usa o operador de redirecionamento ">", que requer um argumento, o que você realmente faz é redirecionar a saída para outro destino. Então, o que acontece quando você corre

cat my_file.txt > new_file.txt

é que, em vez de exibir o conteúdo do arquivo em seu terminal, ele será gravado em um arquivo, "new_file.txt".

duas maneiras sobre isso.

Então, basicamente, o resultado de

cat my_file.txt > copy.txt

e

cp my_file.txt > copy.txt

são os mesmos: você cria um novo arquivo de texto, com o conteúdo de outro. Mas o processo é muito diferente.

Uma última coisa:

> file.txt

enquanto cria um arquivo vazio (você redireciona ... nada para o arquivo.txt, então está vazio. Bastante óbvio, não é?)

Sem mais contexto, não tenho certeza do que os autores querem dizer, mas espero que isso ajude. Boa sorte em aprender unix, é um pouco difícil de começar, mas termina com muita diversão.

EDIT 1:

Quase me esqueci de responder:

"passar um argumento de nome de arquivo" significa passar um argumento, e esse argumento deve ser um nome de arquivo, portanto, o nome de um arquivo, digamos, "arquivo.txt". Também pode ser o caminho completo para o arquivo, algo como:

/home/user/Documents/file.txt
    
por mxdsp 09.10.2015 / 03:19