Introdução
Neste laboratório, você ganhará experiência prática no gerenciamento de arquivos e diretórios usando ferramentas essenciais de linha de comando em um ambiente RHEL. Você aprenderá a explorar sua localização atual e listar conteúdos com pwd e ls, navegar por diretórios e criar arquivos usando cd e touch, e organizar arquivos e diretórios de forma eficaz com mkdir, cp, mv e rm.
Além disso, você descobrirá como criar links entre arquivos usando ln (links físicos e simbólicos) e selecionar arquivos eficientemente com expansões de shell, equipando você com habilidades fundamentais para o gerenciamento de arquivos na linha de comando.
Explore Sua Localização Atual e Liste Conteúdos com pwd e ls
Nesta etapa, você aprenderá como explorar sua localização atual no sistema de arquivos e listar seu conteúdo usando os comandos pwd e ls. Compreender seu diretório de trabalho atual e ser capaz de visualizar seu conteúdo são habilidades fundamentais para navegar e gerenciar arquivos a partir da linha de comando.
Primeiro, vamos determinar seu diretório de trabalho atual usando o comando pwd. pwd significa "print working directory" (imprimir diretório de trabalho) e exibe o nome completo do caminho de sua localização atual no sistema de arquivos.
pwd
Você deverá ver uma saída semelhante a esta, indicando seu diretório atual:
/home/labex
Em seguida, você usará o comando ls para listar o conteúdo do seu diretório atual. ls significa "list" (listar) e lista o conteúdo de diretórios para o diretório especificado ou, se nenhum diretório for fornecido, para o diretório de trabalho atual.
ls
Você deverá ver uma saída mostrando o conteúdo do seu diretório home:
project
O comando ls possui várias opções úteis para exibir mais informações sobre arquivos e diretórios.
A opção
-l(formato de listagem longa) fornece informações detalhadas sobre cada arquivo e diretório, incluindo permissões, número de links físicos, proprietário, grupo, tamanho e hora da última modificação.ls -lVocê deverá ver uma saída semelhante a esta:
total 0 drwxr-xr-x 2 labex labex 6 Aug 27 2024 projectA opção
-a(todos os arquivos) lista todos os arquivos, incluindo arquivos ocultos. No Linux, nomes de arquivos que começam com um ponto (.) são considerados ocultos. Além disso,.refere-se ao diretório atual e..refere-se ao diretório pai.ls -aVocê deverá ver uma saída semelhante a esta, incluindo arquivos de configuração ocultos:
. .. .bash_history .bash_logout .bash_profile .bashrc .tmux.conf projectCombinar
-le-acomo-lafornece uma listagem longa de todos os arquivos, incluindo os ocultos.ls -laIsso mostrará informações detalhadas para todos os arquivos e diretórios, incluindo os ocultos:
total 20 drwx------ 1 labex labex 72 Jun 4 03:12 . drwxr-xr-x 1 root root 19 Aug 27 2024 .. -rw------- 1 labex labex 31 Jun 4 03:13 .bash_history -rw-r--r-- 1 labex labex 18 Feb 15 2024 .bash_logout -rw-r--r-- 1 labex labex 141 Feb 15 2024 .bash_profile -rw-r--r-- 1 labex labex 877 Jun 4 03:12 .bashrc -rw-r--r-- 1 labex labex 68 Aug 27 2024 .tmux.conf drwxr-xr-x 2 labex labex 6 Aug 27 2024 projectA opção
-R(recursiva) lista o conteúdo de todos os subdiretórios recursivamente. Para demonstrar isso, vamos primeiro criar um subdiretório.mkdir mydirAgora, use
ls -Rpara ver a listagem recursiva.ls -RVocê deverá ver os diretórios
mydireprojectlistados, seguidos por seus conteúdos:.: mydir project ./mydir: ./project:Finalmente, vamos remover o diretório
mydirpara limpar o ambiente para as próximas etapas.rmdir mydirEste comando funciona apenas para diretórios vazios. Você aprenderá mais sobre
rmdirermem uma etapa posterior.

Navegue por Diretórios e Crie Arquivos com cd e touch
Nesta etapa, você aprenderá como mudar seu diretório de trabalho atual usando o comando cd e criar arquivos vazios usando o comando touch. Esses comandos são essenciais para organizar seus arquivos e navegar pelo sistema de arquivos de forma eficiente.
Primeiro, vamos verificar sua localização atual e navegar até o diretório project que foi mostrado na etapa 1.
pwd
Você deverá ver /home/labex como saída (seu diretório home).
Agora, vamos navegar até o diretório project usando o comando cd:
cd project
Verifique sua nova localização:
pwd
Você deverá agora ver /home/labex/project como saída.
Agora, vamos criar um novo diretório chamado documents dentro do seu diretório project atual. Você usará o comando mkdir, que você encontrou brevemente na etapa anterior.
mkdir documents
Verifique se o diretório documents foi criado:
ls
Você deverá ver documents listado na saída.
Em seguida, você usará o comando cd para mudar o diretório de trabalho atual do seu shell para o diretório documents recém-criado.
cd documents
Após mudar de diretório, é uma boa prática confirmar sua nova localização usando pwd:
pwd
A saída agora deve ser /home/labex/project/documents.
O comando cd oferece várias opções convenientes para navegação:
cd -: Este comando muda para o diretório anterior em que você estava. Vamos tentar.cd -Você deverá retornar para
/home/labex/project. Verifique compwd:pwdAgora, use
cd -novamente para retornar para/home/labex/project/documents:cd -E verifique com
pwd:pwdcd ..: Este comando usa o diretório oculto..(dois pontos) para subir um nível para o diretório pai, sem a necessidade de saber o nome exato do pai.cd ..Você deverá agora estar em
/home/labex/project. Verifique compwd:pwdVocê pode encadear
..para subir vários níveis. Por exemplo, para ir para/home/labexa partir de/home/labex/project:cd ../Verifique sua localização:
pwdVocê deverá estar em
/home/labex.cd(sem argumentos): Este comando sempre o levará de volta ao seu diretório home, que é/home/labexpara o usuáriolabex.cdVerifique sua localização:
pwdVocê deverá estar em
/home/labex.
Agora, vamos retornar ao seu diretório ~/project/documents para criar alguns arquivos.
cd ~/project/documents
Verifique sua localização:
pwd
A saída deve ser /home/labex/project/documents.
Você usará agora o comando touch. O comando touch atualiza o timestamp de um arquivo para a data e hora atuais sem modificá-lo de outra forma. Este comando também é muito útil para criar arquivos vazios.
Vamos criar dois arquivos vazios chamados report.txt e notes.txt no diretório ~/project/documents.
touch report.txt notes.txt
Verifique se os arquivos foram criados usando ls -l:
ls -l
Você deverá ver uma saída semelhante a esta, mostrando os arquivos recém-criados:
total 0
-rw-rw-r--. 1 labex labex 0 Mar 7 HH:MM report.txt
-rw-rw-r--. 1 labex labex 0 Mar 7 HH:MM notes.txt
Finalmente, vamos criar um novo diretório chamado drafts dentro de ~/project/documents e, em seguida, criar um arquivo dentro dele.
mkdir drafts
cd drafts
touch draft_v1.txt
Verifique a criação do arquivo:
ls -l
Você deverá ver draft_v1.txt listado.
Agora, navegue de volta para o seu diretório ~/project usando um único comando cd.
cd ~/project
Verifique sua localização:
pwd
A saída deve ser /home/labex/project.
Organize Arquivos e Diretórios com mkdir, cp, mv e rm
Nesta etapa, você aprenderá como organizar seus arquivos e diretórios de forma eficaz usando os comandos mkdir (make directory - criar diretório), cp (copy - copiar), mv (move/rename - mover/renomear) e rm (remove - remover). Esses comandos são cruciais para manter um sistema de arquivos limpo e estruturado.
Primeiro, certifique-se de que você está no seu diretório ~/project.
cd ~/project
Verifique sua localização atual:
pwd
A saída deve ser /home/labex/project.
mkdir: Criando Diretórios
Você já usou mkdir para criar um único diretório. Agora, vamos explorar opções mais avançadas do mkdir.
Você pode criar múltiplos diretórios de uma vez listando-os como argumentos:
mkdir reports presentations
Verifique a criação deles:
ls
Você deverá ver documents, presentations e reports listados.
A opção -p (parents - pais) do comando mkdir é muito útil para criar quaisquer diretórios pais ausentes para o destino solicitado. Isso evita erros se você tentar criar um subdiretório dentro de um diretório pai inexistente.
Vamos criar uma estrutura de diretórios aninhada: projects/alpha/docs.
mkdir -p projects/alpha/docs
Agora, use ls -R para ver a estrutura aninhada recém-criada:
ls -R projects
Você deverá ver:
projects:
alpha
projects/alpha:
docs
projects/alpha/docs:
cp: Copiando Arquivos e Diretórios
O comando cp copia arquivos e diretórios. Ao copiar um arquivo, ele cria um duplicado no diretório atual ou em um diretório diferente especificado.
Vamos copiar report.txt do diretório documents para o diretório reports.
cp documents/report.txt reports/
Verifique a cópia listando o conteúdo do diretório reports:
ls reports
Você deverá ver report.txt no diretório reports.
Se um arquivo com o mesmo nome existir no diretório de destino, cp o sobrescreverá por padrão.
Para copiar um diretório e seu conteúdo, você deve usar a opção -r (recursive - recursiva). Por padrão, cp ignora diretórios se -r não for especificado.
Vamos copiar todo o diretório documents para projects/alpha/.
cp -r documents projects/alpha/
Verifique a cópia recursiva:
ls -R projects/alpha/documents
Você deverá ver o conteúdo do diretório documents (incluindo notes.txt, drafts e drafts/draft_v1.txt) agora duplicado dentro de projects/alpha/documents.
projects/alpha/documents:
drafts notes.txt report.txt
projects/alpha/documents/drafts:
draft_v1.txt
mv: Movendo e Renomeando Arquivos e Diretórios
O comando mv move arquivos de um local para outro. Ele também pode ser usado para renomear arquivos ou diretórios. Se você pensar no caminho absoluto de um arquivo como seu nome completo, então mover um arquivo é efetivamente o mesmo que renomear um arquivo. O conteúdo dos arquivos que são movidos permanece inalterado.
Vamos renomear notes.txt no diretório documents para meeting_notes.txt.
mv documents/notes.txt documents/meeting_notes.txt
Verifique a renomeação:
ls documents
Você deverá agora ver meeting_notes.txt em vez de notes.txt.
Agora, vamos mover report.txt do diretório reports para documents/drafts.
mv reports/report.txt documents/drafts/
Verifique a movimentação:
ls reports
O diretório reports deverá agora estar vazio.
ls documents/drafts
Você deverá ver draft_v1.txt e report.txt no diretório documents/drafts.
A opção -v para mv exibe uma saída detalhada das operações do comando, o que pode ser útil para confirmação.
mv -v documents/meeting_notes.txt documents/final_notes.txt
Você verá uma saída como:
renamed 'documents/meeting_notes.txt' -> 'documents/final_notes.txt'
rm: Removendo Arquivos e Diretórios
O comando rm remove arquivos. Tenha cuidado com rm, pois os arquivos excluídos geralmente não são recuperáveis da linha de comando.
Vamos criar um arquivo temporário para praticar rm.
touch temp_file.txt
Agora, remova temp_file.txt:
rm temp_file.txt
Verifique sua remoção:
ls
temp_file.txt não deverá mais ser listado.
Por padrão, rm não remove diretórios. Se você tentar remover um diretório não vazio sem a opção correta, você receberá um erro.
rm presentations
Você verá um erro:
rm: cannot remove 'presentations': Is a directory
Para remover diretórios e seu conteúdo, você deve usar a opção -r (recursive - recursiva). O comando rm -r percorre cada subdiretório primeiro e remove individualmente seus arquivos antes de remover cada diretório.
Vamos remover o diretório presentations e seu conteúdo (que atualmente está vazio, mas -r ainda é necessário para diretórios).
rm -r presentations
Verifique sua remoção:
ls
presentations não deverá mais ser listado.
A opção -i para rm solicita interativamente a confirmação antes de excluir cada arquivo. Esta é uma boa medida de segurança.
Vamos criar mais alguns arquivos temporários e depois removê-los interativamente.
touch file1.txt file2.txt
rm -i file1.txt file2.txt
Você será solicitado para cada arquivo:
rm: remove regular empty file 'file1.txt'? y
rm: remove regular empty file 'file2.txt'? y
Digite y e pressione Enter para cada solicitação para confirmar a exclusão.
A opção -f (force - forçar) força a remoção sem solicitar confirmação ao usuário. Se você especificar tanto -i quanto -f, -f terá prioridade. Use -f com extremo cuidado.
Finalmente, vamos limpar o diretório projects.
rm -r projects
Verifique se projects foi removido:
ls
rmdir: Removendo Diretórios Vazios
Você também pode usar o comando rmdir para remover diretórios vazios. Ele falhará se o diretório não estiver vazio.
Vamos criar um diretório vazio e removê-lo com rmdir.
mkdir empty_dir
rmdir empty_dir
Verifique sua remoção:
ls
empty_dir não deverá mais ser listado.
Se você tentar remover um diretório não vazio com rmdir, ele falhará:
mkdir test_dir
touch test_dir/test_file.txt
rmdir test_dir
Você verá um erro:
rmdir: failed to remove 'test_dir': Directory not empty
Lembre-se de usar rm -r para diretórios não vazios.
rm -r test_dir
Crie Links Entre Arquivos com ln (Links Rígidos e Simbólicos)
Nesta etapa, você aprenderá sobre a criação de links entre arquivos usando o comando ln. Os sistemas de arquivos Linux suportam dois tipos de links: links hard (ou rígidos) e links simbólicos (ou soft). Compreender a diferença entre eles é crucial para um gerenciamento de arquivos eficaz.
Primeiro, certifique-se de que você está no seu diretório ~/project.
cd ~/project
Verifique sua localização atual:
pwd
A saída deve ser /home/labex/project.
Vamos criar um novo arquivo chamado original_file.txt com algum conteúdo para trabalhar.
echo "This is the content of the original file." > original_file.txt
Verifique o conteúdo do arquivo:
cat original_file.txt
Hard Links (Links Rígidos)
Um link hard é essencialmente outro nome para um arquivo existente. Ele aponta diretamente para os mesmos dados (inode) no dispositivo de armazenamento que o arquivo original. Após a criação de um link hard, você não consegue distinguir entre o novo link hard e o nome original do arquivo; ambos são formas igualmente válidas de acessar os mesmos dados.
Você pode determinar se um arquivo possui múltiplos links hard usando o comando ls -l. A segunda coluna na saída do ls -l mostra o número de links hard para o arquivo.
Inicialmente, original_file.txt tem um link hard (ele mesmo):
ls -l original_file.txt
Você deverá ver uma saída semelhante a esta, onde o número 1 indica um link hard:
-rw-rw-r--. 1 labex labex 35 Mar 7 HH:MM original_file.txt
Agora, vamos criar um link hard para original_file.txt chamado hard_link.txt usando o comando ln.
ln original_file.txt hard_link.txt
Verifique a contagem de links hard para ambos os arquivos:
ls -l original_file.txt hard_link.txt
Você deverá agora ver a contagem de links hard como 2 para ambos os arquivos, indicando que eles apontam para os mesmos dados:
-rw-rw-r--. 2 labex labex 35 Mar 7 HH:MM hard_link.txt
-rw-rw-r--. 2 labex labex 35 Mar 7 HH:MM original_file.txt
Para confirmar que eles apontam para os mesmos dados, você pode usar a opção ls -i para listar o número do inode de cada arquivo. Se os arquivos estiverem no mesmo sistema de arquivos e seus números de inode forem os mesmos, então os arquivos são links hard que apontam para o mesmo conteúdo de arquivo de dados.
ls -i original_file.txt hard_link.txt
Os números de inode devem ser idênticos:
1234567 original_file.txt 1234567 hard_link.txt
Se você modificar o conteúdo de um arquivo, as alterações serão refletidas no outro, pois são os mesmos dados subjacentes.
echo "Adding new line." >> hard_link.txt
cat original_file.txt
Você verá:
This is the content of the original file.
Adding new line.
Mesmo que o arquivo original seja excluído, você ainda pode acessar o conteúdo do arquivo, desde que pelo menos um outro link hard exista. Os dados são excluídos do armazenamento apenas quando o último link hard é excluído, tornando o conteúdo do arquivo não referenciado por nenhum link hard.
Vamos remover original_file.txt:
rm original_file.txt
Agora, tente acessar hard_link.txt:
cat hard_link.txt
Você ainda verá o conteúdo:
This is the content of the original file.
Adding new line.
A contagem de links hard para hard_link.txt deverá agora ser 1:
ls -l hard_link.txt
Limitações dos Hard Links:
- Você só pode usar links hard com arquivos regulares. Você não pode usar o comando
lnpara criar um link hard para um diretório ou arquivo especial. - Você só pode usar links hard se ambos os arquivos estiverem no mesmo sistema de arquivos. Você pode usar o comando
dfpara listar os sistemas de arquivos.
Symbolic Links (Links Simbólicos)
Um link simbólico (também chamado de "soft link" ou "symlink") é um tipo especial de arquivo que aponta para outro arquivo ou diretório pelo seu caminho. É semelhante a um atalho no Windows. Ao contrário dos links hard, os links simbólicos não apontam diretamente para os dados; eles apontam para o nome do arquivo ou diretório de destino.
Vamos criar um novo arquivo chamado target_file.txt para o nosso link simbólico.
echo "This is the target file for the symbolic link." > target_file.txt
Agora, crie um link simbólico chamado sym_link.txt apontando para target_file.txt usando o comando ln -s.
ln -s target_file.txt sym_link.txt
Verifique os detalhes do link simbólico usando ls -l:
ls -l target_file.txt sym_link.txt
Você notará algumas diferenças:
- O primeiro caractere da listagem longa para
sym_link.txtél(letral), indicando que é um link simbólico. - A saída mostra
sym_link.txt -> target_file.txt, mostrando explicitamente para o que ele aponta. - O tamanho do link simbólico é muito pequeno (é apenas o comprimento do caminho de destino), não o tamanho do arquivo de destino.
- A contagem de links hard para
sym_link.txté1.
-rw-rw-r--. 1 labex labex 45 Mar 7 HH:MM target_file.txt
lrwxrwxrwx. 1 labex labex 14 Mar 7 HH:MM sym_link.txt -> target_file.txt
Você pode acessar o conteúdo de target_file.txt através de sym_link.txt:
cat sym_link.txt
Você verá:
This is the target file for the symbolic link.
Principais diferenças e comportamentos dos Links Simbólicos:
Vinculação entre sistemas de arquivos: Links simbólicos podem vincular dois arquivos em sistemas de arquivos diferentes.
Vinculação a diretórios: Links simbólicos podem apontar para um diretório, não apenas para um arquivo regular. Vamos criar um link simbólico para o seu diretório
documents.ln -s documents doc_shortcutAgora, você pode usar
cdpara entrar emdoc_shortcutcomo se fosse o próprio diretóriodocuments:cd doc_shortcutVerifique sua localização. Observe que
pwdpor padrão mostra o caminho do link simbólico:pwdSaída:
/home/labex/project/doc_shortcutSe você quiser que
pwdmostre o caminho real do diretório para o qual o link simbólico aponta, use a opção-P:pwd -PSaída:
/home/labex/project/documentsAgora, volte para
~/project:cd ~/projectLinks simbólicos quebrados (dangling): Quando o arquivo regular original (o destino) é excluído, o link simbólico ainda existe, mas aponta para um arquivo ausente. Isso é chamado de "dangling symbolic link" (link simbólico pendente).
Vamos remover
target_file.txt:rm target_file.txtAgora, verifique
sym_link.txtcomls -l:ls -l sym_link.txtVocê verá que
sym_link.txtainda existe, mas seu destinotarget_file.txté mostrado em vermelho ou em uma cor diferente (dependendo da configuração do seu terminal) para indicar que está quebrado:lrwxrwxrwx. 1 labex labex 14 Mar 7 HH:MM sym_link.txt -> target_file.txtSe você tentar usar
catno link simbólico pendente, ele falhará:cat sym_link.txtSaída:
cat: sym_link.txt: No such file or directory
Finalmente, vamos limpar os arquivos e links criados nesta etapa.
rm hard_link.txt sym_link.txt doc_shortcut
ls
Você deverá ver apenas os diretórios documents e reports restantes das etapas anteriores.
Selecione Arquivos Eficientemente com Expansões de Shell
Nesta etapa, você aprenderá a selecionar eficientemente arquivos e diretórios usando vários recursos de expansão do shell, incluindo correspondência de padrões (globbing), expansão de til (~), expansão de chaves ({}), expansão de variáveis e substituição de comandos. Esses recursos permitem que você execute operações em vários arquivos com comandos concisos.
Primeiro, certifique-se de estar no seu diretório ~/project.
cd ~/project
Verifique sua localização atual:
pwd
A saída deve ser /home/labex/project.
Para demonstrar as expansões do shell, vamos criar um conjunto de arquivos e diretórios.
mkdir data
cd data
touch file1.txt file2.log file_a.txt file_b.log report_2023.txt report_2024.log
touch image.jpg document.pdf archive.zip
mkdir dir1 dir2 dir3
cd ..
Agora, liste o conteúdo do diretório data para ver os arquivos que você criou:
ls data
Você deverá ver:
archive.zip dir1 dir2 dir3 document.pdf file1.txt file2.log file_a.txt file_b.log image.jpg report_2023.txt report_2024.log
Correspondência de Padrões (Globbing)
A correspondência de padrões, também conhecida como globbing, permite selecionar arquivos com base em padrões usando caracteres especiais chamados metacaracteres.
| Metacaractere | Corresponde a | Exemplo |
|---|---|---|
* |
Qualquer sequência de zero ou mais caracteres. | *.txt corresponde a todos os arquivos terminados em .txt. |
? |
Qualquer caractere único. | file?.txt corresponde a file1.txt, fileA.txt, etc. |
[abc...] |
Qualquer caractere único na classe contida. | file[12].txt corresponde a file1.txt ou file2.txt. |
[!abc...] |
Qualquer caractere único que não está na classe contida. | file[!1].txt corresponde a fileA.txt, mas não a file1.txt. |
[[:alpha:]] |
Qualquer caractere alfabético. | file[[:alpha:]].txt corresponde a fileA.txt. |
[[:digit:]] |
Qualquer dígito único de 0 a 9. | file[[:digit:]].txt corresponde a file1.txt. |
Vamos tentar alguns exemplos dentro do diretório data.
Usando
*: Liste todos os arquivos terminados em.txt:ls data/*.txtSaída:
data/file1.txt data/file_a.txt data/report_2023.txtListe todos os arquivos que contêm
fileno nome:ls data/*file*Saída:
data/file1.txt data/file2.log data/file_a.txt data/file_b.logUsando
?: Liste arquivos que têm exatamente um caractere antes de.log:ls data/file?.logSaída:
data/file2.logUsando
[]para conjuntos de caracteres: Liste arquivos que começam comreport_e têm2023ou2024no nome:ls data/report_[2][0][2][34].*Saída:
data/report_2023.txt data/report_2024.logUsando
{}para expansão de chaves (brace expansion): Liste arquivos que começam comfilee terminam com.txtou.log:ls data/file*.{txt,log}Saída:
data/file1.txt data/file2.log data/file_a.txt data/file_b.log
Expansão de Til ~
O caractere til (~) se expande para o diretório home do usuário atual (/home/labex). Quando seguido por um nome de usuário, ele se expande para o diretório home desse usuário.
echo ~
Saída:
/home/labex
echo ~root
Saída:
/root
echo ~/project/data
Saída:
/home/labex/project/data
Expansão de Chaves {} (Brace Expansion)
A expansão de chaves gera strings arbitrárias. É útil para criar listas de arquivos ou diretórios com nomes semelhantes sem digitar cada um individualmente.
Lista separada por vírgulas: Crie os arquivos
report_jan.txt,report_feb.txt,report_mar.txt:touch data/report_{jan,feb,mar}.txtListe-os:
ls data/report_*.txtSaída:
data/report_2023.txt data/report_jan.txt data/report_feb.txt data/report_mar.txtIntervalo de números ou letras: Crie os arquivos
doc1.txt,doc2.txt,doc3.txt:touch data/doc{1..3}.txtListe-os:
ls data/doc*.txtSaída:
data/doc1.txt data/doc2.txt data/doc3.txtCrie os diretórios
chapterA,chapterB,chapterC:mkdir data/chapter{A..C}Liste-os:
ls data/chapter*Saída:
data/chapterA data/chapterB data/chapterC
Expansão de Variáveis
As variáveis do shell armazenam valores que podem ser expandidos em comandos. Você define uma variável usando VARNAME=valor e acessa seu valor usando $VARNAME ou ${VARNAME}.
MY_DIR=data
echo "My directory is: $MY_DIR"
Saída:
My directory is: data
Você pode usar variáveis em comandos:
ls $MY_DIR
A saída será o conteúdo do diretório data.
Substituição de Comando (Command Substitution)
A substituição de comando permite que você use a saída de um comando como parte de outro comando. Isso é feito envolvendo o comando em $(comando) ou crases `comando`. A sintaxe $(comando) é geralmente preferida, pois pode ser aninhada.
Vamos obter a data atual e usá-la em um nome de arquivo.
touch data/log_$(date +%Y-%m-%d).txt
Liste o diretório data para ver o novo arquivo:
ls data/log_*.txt
A saída será semelhante a:
data/log_2024-03-07.txt
Você também pode usá-la para contar arquivos:
echo "There are $(ls data | wc -l) items in the data directory."
A saída será semelhante a:
There are 19 items in the data directory.
Protegendo Argumentos Contra Expansão
Às vezes, você deseja impedir que o shell expanda certos caracteres. Você pode fazer isso usando:
Barra invertida (
\): Escapa o próximo caractere único.echo "The value of \$HOME is your home directory."Saída:
The value of $HOME is your home directory.Aspas simples (
''): Impedem toda a expansão do shell dentro das aspas.echo 'The current date is $(date +%Y-%m-%d).'Saída:
The current date is $(date +%Y-%m-%d).Aspas duplas (
""): Impedem a maior parte da expansão do shell, mas permitem a expansão de variáveis ($VAR) e a substituição de comandos ($()).MY_DATE=$(date +%Y-%m-%d) echo "Today's date is $MY_DATE."Saída:
Today's date is 2024-03-07.Compare com as aspas simples:
echo 'Today is $MY_DATE.'Saída:
Today's date is $MY_DATE.
Finalmente, vamos limpar o diretório data.
rm -r data
Resumo
Neste laboratório, você aprendeu ferramentas fundamentais de linha de comando para gerenciar arquivos e diretórios no RHEL. Você começou dominando pwd para identificar seu diretório de trabalho atual e ls para listar o conteúdo do diretório, incluindo o uso de opções como -l para informações detalhadas e -a para revelar arquivos ocultos. Em seguida, progrediu para navegar no sistema de arquivos com cd e criar novos arquivos com touch.
Além disso, você ganhou proficiência na organização do seu sistema de arquivos usando mkdir para criar diretórios, cp para copiar arquivos e diretórios, mv para movê-los ou renomeá-los, e rm para removê-los. O laboratório também cobriu a criação de links hard e simbólicos usando ln, e como selecionar arquivos eficientemente usando expansões do shell, aprimorando sua capacidade de gerenciar arquivos e diretórios de forma eficaz a partir da linha de comando.



