Sistema de Arquivos no Linux MV CP - Parte 10

Aula 17 · GNU/Linux para Servidores

Transcrição do áudio

Recoleguinha! Vamos dar uma olhada agora nos dois comandos básicos aqui que utilizamos muito aí no Corte de Ano, que é copiar e mover arquivos. Detalhe, são comandos para ser executados no local, na máquina, mas lá na frente, lá para o capítulo 15, eles ensinam a fazer cópia para servidores remoto. Isso é importante. Vamos lá primeiro. Vamos dar uma olhada aqui nos dois comandos básicos. Bom, é natural que nós empilhamos arquivos. Todo mundo aqui é um acumulador digital. Provavelmente deve ter atividades lá do seu professor do primeiro semestre de algoritmo, lógica de programação, até hoje no seu pendrive ou em alguma backup na nuvem. Engraçado que a nuvem só incha, né? É, coleguinha. Na vida real, a nuvem diz incha, mas aqui no mundo virtual, a nuvem só incha. E aí, por exemplo, vamos lá. Vou criar um arquivo aqui para você ver. Então, pera aí, deixa eu abrir o lindo quesinho básico aqui. Deixa eu abrir um basicão aqui, show metafonte, certo? Legal. Então, olha só, eu estou no meu diretório, certo? O Debian, preste atenção. O Debian, sempre que você inicializa o shell, ele naturalmente te manda para o diretório do usuário. Alguns, como eu posso dizer, não são atalhos. Alguns labels que você tem que saber. CD barra, veja, barra, raiz, eu vou para raiz. CD, isso aqui, né? Eu vou para o diretório do usuário. Olha só, repare aqui, ó. Está vendo aqui? PWD. PWD, olha lá, diretório do usuário. CD ponto barra, ponto barra, aonde eu estou, não é? E CD ponto ponto barra, ponto ponto barra, diretório anterior. Bom, dessa forma, então, você consegue ali ter alguns símbolos que representam alguma in-out. Assim, já vimos essa questão de in-out, certo? Legal. Então, vamos lá. Estou aqui no meu diretório de LES. Desculpa, já não é meu diretório, estou em home. CD user. LES, agora estou no meu diretório. Meu diretório de usuário, porque eu sou o user. Outra coisa interessante. Cada Linux é cada Linux, tá? Se eu abrir um Kali, o user é Kali, barra home e barra Kali. Se é o Linux do meu livro... Pera aí. Bom, vamos lá. Então, quer dizer que eu estou aqui no meu diretório do meu usuário, o user, porque eu estou nesse Linux do KILBS, do KILBS OS. Legal. Então, vamos lá. Lembrando que estou preparando vocês para um servidor, tá? Beleza. Aqui, então, eu tenho arquivos. Diretório é um arquivo, mas eu tenho um arquivo do tipo regular e esse arquivo do tipo regular é um arquivo de dados. É chamado de comandos. Bom, simples. File, comandos. Se você digitar, olha só, preste atenção na digitação. Eu digitei um C. Algum desses arquivos tem um C minúsculo? Sómente esse. Se eu pressionar Tab, ele completa para mim. Por isso que às vezes você me vê digitar muito rápido. Na verdade, eu não estou digitando. Eu estou pressionando Tab. Mais ou menos eu sei o nome dos arquivos aonde estão. Então, é tudo muito rápido. Mas vamos lá. Deixa eu colocar um D maiusco. Eu coloquei um D maiusco e dei um Tab. Ele não preencheu, porque eu tenho 3 com D maiusco. Se eu colocar um O, eu ainda tenho 2 maiuscos. Então, ao pressionar Tab, ele não me coloca nada. Agora, eu só tenho um 1 que tem D, O, W. Então, quando eu pressiono Tab, ele preenche para mim automaticamente. Então, comandos, Tab, olha só. A questão não é acelerar. A questão é acertar o nome do arquivo. A maior parte dos arquivos não está na sua cultura. Ou seja, na minha cultura. Está na outra cultura. Então, é natural que tem os nomes que não batem com o que nós aprendemos ao longo da nossa história. No ensino, principalmente público. Então, nós sofremos para caramba. Beleza? Então, trabalha assim. Legal. Esse arquivo chamado comandos é do tipo ASCII2TEXT. É um texto. É um texto. Legal. Então, ele é apenas um arquivo com alguns comandos que eu fiz no passado. Então, eu quero copiar ele para um diretório chamado TMP. Outra coisa interessante. Repare que não tem extensão. Repare que não tem extensão. Aquela galera mais antiga do mundo lino que se não vai usar extensão para nada. Para nada. A pouca coisa. Um script SH, um PY de um Python, um HTML, porque obrigatoriamente tem que ter, né? No caso do HTML, JavaScript, PHP, Java, que tem que ter, né? A extensão. Mas, cara, se ele puder utilizar, não vai usar. Se ele puder não utilizar, ele não vai utilizar a extensão. Entendeu? Legal. Então, vamos lá. Vou copiar ele aqui. Cp. Então, comandos. Eu vou mandar ele para barra T e eu posso dar um tab. Só tem TMP na raiz. Só tem um TMP com T. Então, eu posso dar um T, impressionar um tab. E aí ele vai me colocar a um auto completar. Nem todo lino que se coloca essa barrinha. Nem todo lino que se coloca essa barrinha, viu? No diretório. Agora, essa barrinha aqui obrigatoriamente você tem que ter, porque ela é a partir da raiz você tem um TMP, certo? Então, você fez uma cópia lá para comandos. Tanto que se... Desculpa, lá para TMP. Então, se você file barra TMP comandos, tá copiado para lá. É uma cópia. É uma cópia. Legal. Clear. Então, olha só. Então, beleza. Tá aqui file. Eu poderia pedir o status, né? Ls traço L, por exemplo. Ah, deixa eu colocar o I. I node I, certo? Alá, 28. Se eu colocar do diretório, do usuário, que é isso aqui, o diretório do usuário, comandos. Repara, olha só que o número do I node modificou. Se o número do I node modificou, são arquivos diferentes. É uma cópia. Quer dizer que você... Se você editar um, você não edita o outro. Beleza? Tá bom. É muito comum fazer isso aqui, tá? É muito comum mesmo fazer isso aqui. Eu peço que faça isso aqui lá em aulas mais avançadas. É um arquivo no Debian que fica a configuração da placa de rede, tá? Ele é o arquivo file... Deixa eu colocar aqui barra ET... Viu? ETabnetwtabinterface. Viram? Eu não digitei tudo. Ele é um arquivo de texto. Então, você pode abrir e editar ele com um nano. Então, só que eu vou apenas jogar um cat aqui para cima e para baixo. Para cima e para baixo. Para cima e para baixo. Prende o outro teclado. Então, olha só, aqui é um arquivo apenas de configuração de placa de rede, certo? O que acontece? É muito comum a pessoa ter um arquivo desse de configuração de servidor com cinco placas, seis placas de rede configurado. O arquivo fica bem grande e complexo. Então, antes de você mexer no arquivo, é recomendado que você faça uma cópia. Ao copiar, você pode colocar um ponto old no final, tá? Não é uma extensão, é só para dizer que olha, a boa é a versão old. Então, sudo cp, por que sudo? Porque você precisa obrigatoriamente ser suprusuar para manipular nesse diretório. Você pode colocar old. Eu já vi muita gente colocar um, dois, três, mas se começa a ter um, dois, três, dois, três, desculpe, dois, três, significa que está guardando muito lixo. Você tem que voltar para pagar ele, tá? Então, aí, então, o aluno pode entrar no editor, opa, não posso porque não suprusualho. Aí, o aluno pode entrar no editor, fazer a configuração, salvar esse arquivo. Se der merda, ele tem um arquivo old lá para ver aonde foi que ele errou. Ele pode usar um comando diff de ver a diferença entre os dois arquivos e ver que é que tem de alteração nos dois arquivos, tá? Então, copiar, você copia o arquivo assim, você está numa área como ETC que é do suprusuário. Você vai precisar do sudo para fazer essa cópia. Beleza? Legal. Beleza. Então, olha só, vamos copiar o diretório inteiro para TMP. Então, veja só. Deixa eu ver se eu tenho um tree aqui. Tree. Tá. Sudo apt install tree. Só para você entender e ver, tá? Vai lá, coleguinha. Eu não dei uma update, galera. Eu fui um preguiçoso. Resumo, fui um preguiçoso. Eu tenho 35 giga ainda. Pô, cara. Esse é um problema do Qubes, né? Opa! Parece que eu estou com um problema de conexão, hein? Parece que estou bom. Resolves depois. Eu ia instalar o tree, mas vamos lá. CD barra ETC, Netework, certo? Aqui LS traço L. Veja que esse diretório tem vários outros subdiretórios de configuração de placa de rede. O nosso arquivo de configuração e o nosso ODE que nós fizemos, porque se a gente errar nessa configuração, nós podemos voltar e corrigir a merda vendo com o Diff a diferença entre esse e esse. Legal? Beleza. Isso tá bem claro. Então, vamos lá. Digamos que eu quero copiar esse diretório inteiro para o TMP. Ou seja, eu quero copiar o diretório e tudo que tem nele. Netework, tudo que tem nele. Então, beleza. CD lá para o TMP. Então, sudo, CP, ETC, Netework. Preste atenção, se você colocar isso aqui, tá? Se você colocar isso aqui, você vai copiar o conteúdo de Netework, que são aqueles arquivos, que vão ficar tudo espalhados dentro de TMP, vai ficar tudo jogado lá. Mas caso você pense em mandar o diretório e todo o conteúdo, então você tira isso aqui. E aí você... Oh, desculpa, galera. Traço R de recursivo, vacilo em traço R de recursividade. E ele copia de forma recursiva. Legal? L, F, TMP, Netework. Tá lá. Os arquivos estão lá. Todos os inodes são diferentes. É lógico, é uma cópia. É uma cópia. Beleza? Tra, tranquilo. Ah, aqui se você quiser copiar o conteúdo, conforme eu falei, mas ele vai espalhar tudo dentro de TMP, o conteúdo. Às vezes isso é importante. Bom, para mover um arquivo... Bom, então o seguinte, é o comando MV. Então vamos lá. Eu estou no meu diretório. Eu consigo ver por isso aqui, né? Por isso aqui eu consigo. Então, touche um arquivo idiota. Ah, eu queria que eu acalme conteúdo. Desculpa, cara. Desculpa, desculpa. Desculpa, eu tenho que colocar um conteúdo. Eu tenho que ficar puto com botafogo. Lógico, por que não? Agora tem um conteúdo. Tá aqui um arquivo idiota, certo? E aí eu falo assim, poxa, ele não deveria estar aqui. Então eu poderia simplesmente chegar aqui e falar, MV, um arquivo idiota, repare. Eu coloquei o AMD, um tab, ele preenchiu tudo para mim. E aí eu falo, barra T, um tab, ele preenchiu tudo para mim, tem MP. E aí eu movi o arquivo para lá. Se você tentar procurar agora, você não vai chamar mais o arquivo idiota. Legal? Então MV, ele serve para isso. O MV não precisa de recursividade. Ele já subentende que ao mover, ele move tudo de forma recursiva. Beleza? Acontece que o move, mover, ele não é uma função do sistema. Como assim? Então vamos lá. Você consegue fazer ele utilizando o rename. É por isso que tem distribuições, no caso a Apple, a Apple tem no macOS. Bom, pelo menos era assim 2012, 13, 14, 15, 16. Não tem o mover, você tem o rename. Você renomeia todo o PFE do arquivo. Entenderam? Em vez de ter o mover e o rename que faz a mesma coisa, pensa, é a mesma coisa. Mover e dar um rename completo no PFE do arquivo, você está renomeando ele. Então tem essa distinção no mundo Windows, mais no mundo Linux, não tem essa distinção. Então é o rename. Ah, mas no meu Linux tem o mover. Então o mover do seu Linux é o rename, da estándar de libido C++. Basicamente ele recebe o primeiro argumento, que é o PFE de um arquivo, que existe o caminho completo. Raiz, bar, até lá no nome do arquivo. E o caminho completo da onde ele vai estar. Se você copia, se você dá um rename em um arquivo do diretório, no mesmo diretório, ele só mudou o nome. Então vamos lá. Olha só. Então CD, bar, até MP, certo? Ls, está aqui. Eu tenho comandos em um arquivo idiota, não é isso? Legal. Então vamos expressar toda a minha raiva do Botafone. Então mv.bar da onde eu estou tem um arquivo idiota, certo? Aí eu vim aqui e falo, é um time idiota. E agora um ls. Todo meu hote pelo Botafone, está sendo exposto aqui. É lá. Time idiota. Veja, eu renomei o arquivo. Mas eu não entive no mesmo diretório. Então quando você utiliza o caminho, bem como o nome, está? É um rename, cara. Então mv é um rename. Peraí, desculpa, galera. Acabaram vendo a ferramenta de gravação. Então isso aqui seria um mv. Isso aqui seria o move. O move é assim praticamente. Está? Chama da Standard Lib Rename. Beleza? Legal. Aqui eu chamei de use Linux na app. Legal. Bom, no próximo vídeo vamos falar sobre leitura de arquivos. Até lá, até mais.
Voltar ao curso