Articles

Trabalhando Com Arquivos e Diretórios

Descrição

Ensino: 30 min
Exercícios: 20 min.
Dúvidas

  • Como posso criar, copiar e excluir arquivos e diretórios?

  • Como posso editar os ficheiros?

objectivos

  • criar uma hierarquia de pastas que corresponda a um dado Diagrama.

  • Crie ficheiros nessa hierarquia usando um editor ou copiando e renomeando ficheiros existentes.

  • Delete, copie e mova os ficheiros e / ou pastas especificados.

a Criação de diretórios

agora sabemos como explorar arquivos e diretórios,mas como podemos criá-las em primeiro lugar?

Passo um: veja onde estamos e o que já temos

Vamos voltar para o nosso data-shell diretório no Desktopand usar ls -F para ver o que ele contém:

$ pwd
/Users/nelle/Desktop/data-shell
$ ls -F
creatures/ data/ molecules/ north-pacific-gyre/ notes.txt pizza.cfg solar.pdf writing/

Crie um diretório

Vamos criar um novo diretório chamado thesis usando o comando mkdir thesis(que não tem saída):

$ mkdir thesis

Como você pode adivinhar o seu nome,mkdir significa “marca o diretório’.Uma vez que thesis é o caminho relativo (i.e., não tem uma barra à esquerda, como /what/ever/thesis),o novo diretório é criado no diretório de trabalho atual:

$ ls -F
creatures/ data/ molecules/ north-pacific-gyre/ notes.txt pizza.cfg solar.pdf thesis/ writing/

Desde que acabamos de criar o thesis diretório, não há nada nele ainda:

$ ls -F thesis

Note que mkdir não é limitado para criar uma única diretórios um de cada vez. -p opção permite que mkdir para criar um diretório com qualquer número de subpastas aninhadas em uma única operação:

$ mkdir -p thesis/chapter_1/section_1/subsection_1

-R opção ls comando irá listar todos os aninhadas subdiretórios dentro de um diretório. Vamos usar ls -FR para listar recursivamente a nova hierarquia de diretórios que acabamos de criar sob o thesis directório:

$ ls -FR thesischapter_1/thesis/chapter_1:section_1/thesis/chapter_1/section_1:subsection_1/thesis/chapter_1/section_1/subsection_1:

Duas maneiras de fazer a mesma coisa

Usando o shell para criar um diretório não é diferente do que usar um gerenciador de arquivos.Se abrir a pasta actual usando o explorador gráfico de ficheiros do seu sistema operativo, a pasta thesis irá aparecer também aí.Enquanto a shell e o file explorer são duas maneiras diferentes de interagir com os arquivos,os arquivos e diretórios em si são os mesmos.

Bons nomes para arquivos e diretórios

Complicado nomes de arquivos e diretórios pode tornar a sua vida painfulwhen a trabalhar na linha de comando. Aqui nós fornecemos algumas dicas de uso para os nomes de seus arquivos.

  1. não utilize espaços.

    espaços podem fazer um nome mais significativo, mas como espaços são usados para separar argumentos sobre o comando lineit é melhor evitá-los em nomes de arquivos e diretórios.Você pode usar - ou _ em vez disso (e.g. north-pacific-gyre/rather thannorth pacific gyre/).

  2. não comece o nome com - (traço).

    os comandos tratam os nomes começando com- como opções.

  3. ficar com letras, números, . (período ou “full stop”), - (traço) e _ (sublinhado).muitos outros caracteres têm significados especiais na linha de comandos.Vamos aprender sobre alguns destes durante esta lição.Existem caracteres especiais que podem fazer com que o seu comando não funcione como esperado e pode até resultar em perda de dados.

Se precisar de se referir a nomes de ficheiros ou pastas que tenham espaços ou outros caracteres especiais, deverá rodear o nome entre aspas ("").

Crie um arquivo de texto

Vamos mudar nosso directório de trabalho thesis uso de cde,em seguida, executar um editor de texto chamado Nano para criar um arquivo chamado draft.txt:

$ cd thesis$ nano draft.txt

Qual Editor?

Quando dizemos, ‘nano é um editor de texto’ nós realmente significa ‘texto’: ele canonly de trabalho com carácter simples dados, e não em tabelas, imagens, ou qualquer otherhuman-friendly mídia. Nós o usamos em exemplos porque é um dos últimos editores de texto complexos. No entanto, devido a esta característica, pode não ser suficientemente poderosa ou flexível para o trabalho que precisa de fazer depois desta oficina. Em sistemas Unix (como Linux e macOS),muitos programadores usam emacs orVim (ambos os quais requerem mais tempo para aprender),ou um editor gráfico como o gedit. No Windows, você pode desejar o uso do Notepad++. O Windows também tem um built-ineditor chamado de notepad que pode ser executado a partir da linha de comando no sameway nano para os fins desta lição.

independentemente do editor que use, terá de saber onde procura e grava os ficheiros. Se o iniciar a partir da linha de comandos, irá (provavelmente)usar o seu directório de trabalho actual como a sua localização predefinida. Se você usar o menu Iniciar do seu computador, ele pode querer salvar arquivos em seu diretório de ordocuments desktop em vez disso. Você pode mudar isso navegando para outra diretoria da primeira vez que você’salvar como…’

vamos digitar em algumas linhas de texto.Uma vez que estamos felizes com o nosso texto, podemos pressionar Ctrl+O(pressione a tecla Ctrl ou a tecla Control e, whileholding-a pressionada, pressionar a tecla) para escrever os nossos dados para o disco(vamos ser perguntado qual arquivo que deseja salvar este:pressione enter para aceitar o padrão sugerida de draft.txt).

screenshot of nano text editor in action

Uma vez que o nosso Ficheiro seja gravado, podemos usar o Ctrl+X para sair do editor e voltar à linha de comandos.

Control, Ctrl, ou ^ Key

a chave de controlo também é chamada de ‘Ctrl’. Existem várias formas de utilizar a chave de controlo que podem ser descritas. Por exemplo, você pode ver uma instrução para pressionar a tecla de controle e,ao segurá-la, pressione a tecla X, descrita como qualquer um dos:

  • Control-X
  • Control+X
  • Ctrl-X
  • Ctrl+X
  • ^X
  • C-x

No nano, ao longo da parte inferior da tela, você verá ^G Get Help ^O WriteOut.Isso significa que você pode usar Control-G para obter ajuda e Control-O para salvar yourfile.

nano não deixe de saída na tela depois que ele sai,mas ls agora mostra que temos criado um arquivo chamado draft.txt:

$ ls
draft.txt

a Criação de Arquivos de uma Forma Diferente

Nós vimos como criar arquivos de texto usando o nano editor.Agora, tente o seguinte comando:

$ touch my_file.txt
  1. o Que touch comando faz?Quando você olha para o seu diretório atual usando o Explorador de arquivos GUI,O arquivo aparece?

  2. Use para inspeccionar os ficheiros. Quão grande é my_file.txt?

  3. Quando deseja criar um ficheiro desta forma?

Solução

  1. touch comando gera um novo arquivo chamado my_file.txt inyour diretório atual. Pode observar este ficheiro recém-gerado escrevendo ls na linha de comandos. my_file.txt também pode ser visto no yourgui file explorer.

  2. Quando inspeccionar o ficheiro com , note que o tamanho demy_file.txt é 0 bytes. Por outras palavras, não contém dados.Se abrir my_file.txt usando o seu editor de texto, está em branco.

  3. Alguns programas não geram os próprios ficheiros de saída, mas o instead exige que os ficheiros vazios já tenham sido gerados.Quando o programa é executado, ele procura por um arquivo existente topopular com sua saída. O comando touch permite-lhe gerar de forma eficiente um ficheiro de texto em branco para ser usado por estes programas.

o Que há Em Um Nome?

você pode ter notado que todos os arquivos de Nelle são chamados de ‘algo dotsomething’, e nesta parte da lição, nós sempre usamos a extensão.txt. Esta é apenas uma convenção: podemos chamar um arquivo mythesis oralmost qualquer outra coisa que quisermos. No entanto, a maioria das pessoas usa dois nomes da maioria das vezes para ajudá-los (e seus programas) dizer diferentes tipos de arquivos separados. A segunda parte de um nome é chamado thefilename extensão, e indicateswhat tipo de dados que o arquivo contém: .txt sinais de um simples arquivo de texto, .pdfindica um documento PDF, .cfg é um arquivo de configuração completo do parametersfor algum programa ou outro, o .png é uma imagem PNG, e assim por diante.esta é apenas uma convenção, embora importante. Ficheiros containbytes: cabe a nós e aos nossos Programas interpretar esses bytesde acordo com as regras para arquivos de texto simples, documentos PDF, arquivos de configuração, imagens, etc.

a Nomeação de uma imagem PNG de uma baleia whale.mp3 não somehowmagically transformá-lo em uma gravação de whalesong, embora mightcause o sistema operacional para tentar abrir-lo, com uma música de playerwhen alguém clica duas vezes nele.

Mover arquivos e diretórios

Retornando para o data-shell diretório,

cd ~/Desktop/data-shell/

nossa thesis diretório temos um arquivo draft.txtque não é particularmente um nome informativo,então vamos mudar o nome do arquivo usando mvqual é a abreviação para ‘mover’:

$ mv thesis/draft.txt thesis/quotes.txt

O primeiro argumento diz mv o que estamos ‘em movimento’,enquanto o segundo é onde está a ir.Neste caso, estamos movendo thesis/draft.txt para ,que tem o mesmo efeito que renomear o arquivo.Com certeza,ls nos mostra que thesis agora contém um arquivo chamado quotes.txt:

$ ls thesis
quotes.txt

Um tem que ter cuidado ao especificar o nome do arquivo destino, desde mv willsilently substituir qualquer arquivo existente com o mesmo nome, que couldlead à perda de dados. Uma opção adicional, mv -i (ou mv --interactive),pode ser usado para fazer mv pedir confirmação antes de substituir.

Note que mv também funciona em diretórios.

vamos mover quotes.txt para a pasta de trabalho actual.Nós usamos mv mais uma vez,mas desta vez vamos usar apenas o nome de um diretório como o segundo argumentto dizer mv que queremos manter o nome,mas colocar o arquivo em algum lugar novo.(É por isso que o comando é chamado de ‘mover’.)Neste caso, o nome de diretório que usamos é o nome de diretório especial . que mencionamos anteriormente.

$ mv thesis/quotes.txt .

o efeito é mover o ficheiro da pasta em que estava para a pasta de trabalho actual.ls agora nos mostra que thesis está vazio:

$ ls thesis

além disso,ls com um nome de ficheiro ou nome de diretório como um argumento apenas listas de arquivo ou diretório.Podemos usar isto para ver que quotes.txt ainda está em nosso diretório atual:

$ ls quotes.txt
quotes.txt

Mover Arquivos para uma nova pasta

Depois de executar os comandos a seguir,Jamie percebe que ela colocou os arquivos sucrose.dat e maltose.dat para a pasta errada. Os arquivos devem ter sido colocados na pasta raw.

$ ls -F analyzed/ raw/$ ls -F analyzedfructose.dat glucose.dat maltose.dat sucrose.dat$ cd analyzed

Preencha os espaços em branco para mover esses arquivos para o raw/ pasta(por exemplo, o que ela esqueceu de colocá-los em)

$ mv sucrose.dat maltose.dat ____/____

Solução

$ mv sucrose.dat maltose.dat ../raw

Lembre-se de que .. refere-se ao diretório pai (por exemplo, um acima do diretório atual)e que . refere-se ao diretório atual.

Copiar arquivos e diretórios

cp comando funciona muito bem como o mv,à exceção de cópias de um arquivo em vez de movê-lo.Podemos verificar que ele fez a coisa certa, usando o lscom dois caminhos como argumentos — como a maioria dos comandos Unix,ls pode ser dado vários caminhos de uma só vez:

$ cp quotes.txt thesis/quotations.txt$ ls quotes.txt thesis/quotations.txt
quotes.txt thesis/quotations.txt

podemos também copiar um diretório e todo o seu conteúdo usando therecursive opção -r,por exemplo, para fazer backup de um diretório:

$ cp -r thesis thesis_backup

podemos verificar o resultado listando o conteúdo de ambas as thesis e thesis_backup diretório:

$ ls thesis thesis_backup
thesis:quotations.txtthesis_backup:quotations.txt

mudar o nome de Ficheiros

Suponha que você criou um simples arquivo de texto no diretório atual para conter uma lista de thestatistical testes que você vai precisar para fazer a analisar seus dados, e o nome é: statstics.txt

Depois de criar e salvar este arquivo, você perceber que você mal escrito o nome do arquivo! Quer corrigir o erro, qual dos seguintes comandos pode usar para o fazer?

  1. cp statstics.txt statistics.txt
  2. mv statstics.txt statistics.txt
  3. mv statstics.txt .
  4. cp statstics.txt .

Solução

  1. Não. Embora isso criasse um arquivo com o nome correto, O arquivo incorretamente nomeado ainda existe na diretoria e precisaria ser excluído.
  2. Yes, this would work to rename the file.não, o período(.) indica para onde mover o arquivo, mas não fornece um novo nome de arquivo; nomes de arquivo idênticos não podem ser criados.não, o período(.) indica onde copiar o arquivo, mas não fornece um novo nome de arquivo; nomes de arquivo idênticos não podem ser criados.

Mover e Copiar

o Que é a saída de fechamento ls comando na seqüência apresentada a seguir?

$ pwd
/Users/jamie/data
$ ls
proteins.dat
$ mkdir recombined$ mv proteins.dat recombined/$ cp recombined/proteins.dat ../proteins-saved.dat$ ls
  1. proteins-saved.dat recombined
  2. recombined
  3. proteins.dat recombined
  4. proteins-saved.dat

Solution

We start in the /Users/jamie/data directory, and create a new folder called recombined.A segunda linha se move (mv o arquivo proteins.dat para a nova pasta (recombined).A terceira linha faz uma cópia do ficheiro que mudámos. A parte complicada aqui é onde o arquivo foi aberto. Recall that .. means ‘go up a level’, so the copied file is now in /Users/jamie.Notice that .. is interpreted with respect to the current workingdirectory, not with respect to the location of the file being copied.Então, a única coisa que vai mostrar usando ls (em /Users/jamie/data) é a pasta recombinada.não, ver explicação acima. proteins-saved.dat está localizado em/Users/jamie

  • Sim
  • não, ver explicação acima. proteins.dat está localizado em /Users/jamie/data/recombined
  • No, ver explicação acima. proteins-saved.dat localizado em /Users/jamie
  • Remover arquivos e diretórios

    Retornando para o data-shell diretório,vamos arrumar este diretório removendo o quotes.txt arquivo que criamos.O comando Unix nós vamos usar para isso é rm (abreviação para ‘remover’):

    $ rm quotes.txt

    Nós podemos confirmar que o arquivo tenha ido usando ls:

    $ ls quotes.txt
    ls: cannot access 'quotes.txt': No such file or directory

    a Exclusão É para Sempre

    O shell do Unix não tem uma lixeira que podemos recuperar deletedfiles do (embora a maioria das interfaces gráficas para Unix de fazer). Ao invés disso, quando apagamos arquivos, eles são desligados do sistema de arquivos para que seu espaço de armazenamento no disco possa ser reciclado. Existem ferramentas para encontrar e recuperar arquivos apagados, mas não há garantia de que eles funcionem em qualquer situação particular, uma vez que o computador pode reciclar o espaço do disco do computador imediatamente.

    Usando rm com Segurança

    o Que acontece quando executamos rm -i thesis_backup/quotations.txt?Por que queremos essa proteção quando usamos rm?

    Solução

    $ rm: remove regular file 'thesis_backup/quotations.txt'? y

    -i opção de linha de comandos antes (cada) remoção (use Y para confirmar a exclusão ou N para manter o arquivo).A shell Unix não tem uma caixote do lixo, então todos os arquivos removidos irão desaparecer forever.By usando a opção -i, temos a chance de verificar que estamos apagando apenas os arquivos que queremos remover.

    Se a gente tentar remover o thesis diretório usando rm thesis,obtemos uma mensagem de erro:

    $ rm thesis
    rm: cannot remove `thesis': Is a directory

    Isso acontece porque rm por padrão, só funciona em arquivos, diretórios não.

    rm pode remover um directório e todo o seu conteúdo se usarmos a opção therecursiva -r, e fá-lo-á sem qualquer indicação de confirmação:

    $ rm -r thesis

    uma vez que não há nenhuma maneira de recuperar arquivos apagados usando o shell,rm -r deve ser usado com grande cautela (você pode adicionar a opção interactiva rm -r -i).

    operações com vários ficheiros e directórios

    muitas vezes é necessário copiar ou mover vários ficheiros ao mesmo tempo. Isto pode ser feito fornecendo uma lista de nomes de arquivos individuais, ou especificando um padrão de nomes usando caracteres especiais.

    Copiar com vários nomes de Ficheiros

    para este exercício, poderá testar os comandos no directóriodata-shell/data.

    no exemplo abaixo, o que faz cp quando dado vários nomes de arquivos e um nome de diretório?

    $ mkdir backup$ cp amino-acids.txt animals.txt backup/

    No exemplo abaixo, o que faz cp o fazem quando têm três ou mais nomes de arquivo?

    $ ls -F
    amino-acids.txt animals.txt backup/ elements/ morse.txt pdb/ planets.txt salmon.txt sunspot.txt
    $ cp amino-acids.txt animals.txt morse.txt

    Solução

    Se dado mais do que um nome de arquivo seguido por um nome de directório (por exemplo, o diretório de destino mustbe o último argumento), cp copia os arquivos para o diretório especificado.

    se forem dados três nomes de arquivos, cp lança um erro como o abaixo, porque ele está esperando um nome de diretor como o último argumento.

    cp: target ‘morse.txt’ is not a directory

    Using wildcards for accessing multiple files at once

    Wildcards

    * is a wildcard, which matches zero or more characters.Let’s consider the data-shell/molecules directory:*.pdb matches ethane.pdbpropane.pdb, and everyfile that ends with ‘.pdb’. Por outro lado, o p*.pdb corresponde apenaspentane.pdb e propane.pdb, porque o ” p ” na frente onlymatches nomes de arquivos que começam com a letra ‘p’.

    ? também é um curinga, mas não substitui exatamente um caracter.Portanto, ?ethane.pdb corresponderia methane.pdb enquanto*ethane.pdb corresponde ethane.pdb e methane.pdb.as aves selvagens podem ser utilizadas em combinação com cada uma das outras espécies.g. ???ane.pdb corresponde a três caracteres seguido por ane.pdbdar cubane.pdb ethane.pdb octane.pdb.

    Quando a linha de comandos vê uma carta especial, expande a carta para criar uma lista de nomes de ficheiros correspondentes antes de executar o comando que foi pedido. Como uma exceção, se uma expressão de caracteres especiais não matchany file, Bash irá passar a expressão como um argumento para os comandos que é. Por exemplo, escrevendo ls *.pdfmolecules diretório(que contém somente os arquivos com nomes terminando com .pdb) resultados inan mensagem de erro que não há nenhum arquivo chamado *.pdf.No entanto, geralmente comandos como wc e ls veja as listas de nomes de arquivo que correspondam a estas expressões, mas não o wildcardsthemselves. É a concha, não os outros programas, que lida com a expressão wildcards, e este é outro exemplo de design ortogonal.

    Lista de nomes de ficheiros correspondentes a um padrão

    Quando executar o molecules diretório, que ls comando(s) willproduce essa saída?

    ethane.pdb methane.pdb

    1. ls *t*ane.pdb
    2. ls *t?ne.*
    3. ls *t??ne.pdb
    4. ls ethane.*

    Solution

    The solution is

    shows all files whose names contain zero or more characters (*) followed by the letter t, then zero or more characters (*) followed by ane.pdb. Isto dá ethane.pdb methane.pdb octane.pdb pentane.pdb.

    mostra todos os arquivos cujos nomes começam com zero ou mais caracteres (*) seguido da letra ” t e, em seguida, um único caractere (?), em seguida, ne. seguido por zero ou mais caracteres (*). Isso nos dará octane.pdb e pentane.pdb mas não corresponde a nada, que termina com a tag thane.pdb.

    corrige os problemas da opção 2 combinando dois caracteres (?? entre t e ne. Esta é a solução.

    apenas mostra os ficheiros que começam com ethane..

    Mais sobre Curingas

    Sam tem um diretório que contém dados de calibração, conjuntos de dados e descrições dos conjuntos de dados:

    .├── 2015-10-23-calibration.txt├── 2015-10-23-dataset1.txt├── 2015-10-23-dataset2.txt├── 2015-10-23-dataset_overview.txt├── 2015-10-26-calibration.txt├── 2015-10-26-dataset1.txt├── 2015-10-26-dataset2.txt├── 2015-10-26-dataset_overview.txt├── 2015-11-23-calibration.txt├── 2015-11-23-dataset1.txt├── 2015-11-23-dataset2.txt├── 2015-11-23-dataset_overview.txt├── backup│ ├── calibration│ └── datasets└── send_to_bob ├── all_datasets_created_on_a_23rd └── all_november_files

    Antes de Partir para outra viagem de campo, ela quer Confirmar os seus dados e enviar alguns conjuntos de dados ao seu colega Bob. O Sam usa os seguintes comandos para fazer o trabalho:

    $ cp *dataset* backup/datasets$ cp ____calibration____ backup/calibration$ cp 2015-____-____ send_to_bob/all_november_files/$ cp ____ send_to_bob/all_datasets_created_on_a_23rd/

    ajuda o Sam preenchendo os espaços em branco.

    A resultante estrutura de diretório deve olhar como este

    .├── 2015-10-23-calibration.txt├── 2015-10-23-dataset1.txt├── 2015-10-23-dataset2.txt├── 2015-10-23-dataset_overview.txt├── 2015-10-26-calibration.txt├── 2015-10-26-dataset1.txt├── 2015-10-26-dataset2.txt├── 2015-10-26-dataset_overview.txt├── 2015-11-23-calibration.txt├── 2015-11-23-dataset1.txt├── 2015-11-23-dataset2.txt├── 2015-11-23-dataset_overview.txt├── backup│ ├── calibration│ │ ├── 2015-10-23-calibration.txt│ │ ├── 2015-10-26-calibration.txt│ │ └── 2015-11-23-calibration.txt│ └── datasets│ ├── 2015-10-23-dataset1.txt│ ├── 2015-10-23-dataset2.txt│ ├── 2015-10-23-dataset_overview.txt│ ├── 2015-10-26-dataset1.txt│ ├── 2015-10-26-dataset2.txt│ ├── 2015-10-26-dataset_overview.txt│ ├── 2015-11-23-dataset1.txt│ ├── 2015-11-23-dataset2.txt│ └── 2015-11-23-dataset_overview.txt└── send_to_bob ├── all_datasets_created_on_a_23rd │ ├── 2015-10-23-dataset1.txt │ ├── 2015-10-23-dataset2.txt │ ├── 2015-10-23-dataset_overview.txt │ ├── 2015-11-23-dataset1.txt │ ├── 2015-11-23-dataset2.txt │ └── 2015-11-23-dataset_overview.txt └── all_november_files ├── 2015-11-23-calibration.txt ├── 2015-11-23-dataset1.txt ├── 2015-11-23-dataset2.txt └── 2015-11-23-dataset_overview.txt

    Solução

    $ cp *calibration.txt backup/calibration$ cp 2015-11-* send_to_bob/all_november_files/$ cp *-23-dataset* send_to_bob/all_datasets_created_on_a_23rd/

    a Organização de Diretórios e Arquivos

    Jamie está trabalhando em um projeto e vê que seus arquivos não são muito wellorganized:

    $ ls -F
    analyzed/ fructose.dat raw/ sucrose.dat

    fructose.dat e sucrose.dat arquivos de conter a saída de seu dataanalysis. Qual(s) comando (s) coberto (s) nesta lição ela precisa executar de modo que os comandos abaixo irão produzir o resultado mostrado?

    $ ls -F
    analyzed/ raw/
    $ ls analyzed
    fructose.dat sucrose.dat

    Solution

    mv *.dat analyzed

    Jamie needs to move her files fructose.dat and sucrose.dat to the analyzed directory.The shell will expand *.dat to match all .dat files in the current directory.The mv command then moves the list of .ficheiros dat para o directório ‘analisado’.

    Reproduzir uma estrutura de pastas

    Você está começando uma nova experiência, e gostaria de duplicar o directorystructure a partir de sua experiência anterior, então você pode adicionar novos dados.

    Suponha que o experimento anterior em uma pasta chamada ‘2016-05-18’,que contém um data pasta que contém pastas com o nome raw eprocessed que contém arquivos de dados. O objetivo é copiar a pasta structureof 2016-05-18-data pasta em uma pasta chamada 2016-05-20para que seu final de estrutura de diretório parecido com este:

    2016-05-20/└── data ├── processed └── raw

    Que o seguinte conjunto de comandos seria alcançar esse objetivo?O que fariam os outros comandos?

    $ mkdir 2016-05-20$ mkdir 2016-05-20/data$ mkdir 2016-05-20/data/processed$ mkdir 2016-05-20/data/raw
    $ mkdir 2016-05-20$ cd 2016-05-20$ mkdir data$ cd data$ mkdir raw processed
    $ mkdir 2016-05-20/data/raw$ mkdir 2016-05-20/data/processed
    $ mkdir -p 2016-05-20/data/raw$ mkdir -p 2016-05-20/data/processed
    $ mkdir 2016-05-20$ cd 2016-05-20$ mkdir data$ mkdir raw processed

    Solução

    Os dois primeiros conjuntos de comandos de alcançar este objectivo.O primeiro conjunto usa caminhos relativos para criar o diretório de nível superior antes das sub-pastas.

    o terceiro conjunto de comandos irá dar um erro porque o comportamento por omissão de mkdir não irá criar uma subdirectoria de uma pasta não-existente: as pastas de nível intermédio devem ser criadas primeiro.

    O quarto conjunto de comandos atinge este objectivo. Lembre-se, a opção -p, seguida por um caminho de um ou mais diretórios, fará com que mkdir crie quaisquer subdiretórios intermediários conforme necessário.

    O conjunto final de comandos gera as pastas’ raw’ e ‘processadas’ no mesmo nível que o diretório ‘data’.

    Pontos-Chave

    • cp copia um arquivo.

    • mkdir cria uma nova pasta.

    • mv move (renomeia) um ficheiro ou directório.

    • rm remove (apaga) um ficheiro.

    • * matches zero or more characters in a filename, so*.txt matches all files ending in.

    • ? corresponde a qualquer um único caractere em um nome de arquivo, portanto, ?.txt jogos a.txt mas não any.txt.

    • o Uso da chave de Controlo pode ser descrita de várias maneiras, incluindo Ctrl-XControl-X e ^X.

    • a linha de comandos não tem caixote do lixo: quando algo é apagado, desaparece.

    • a maioria dos nomes dos ficheiros são something.extension. A extensão não é necessária, e não garante nada, mas é normalmente usado para indicar o tipo de dados no arquivo.

    • dependendo do tipo de trabalho que você faz, você pode precisar de um editor de texto mais poderoso do que Nano.