Neste artigo, RHCSA Parte 2: Gerenciamento de arquivos e diretórios, revisaremos algumas habilidades essenciais necessárias nas tarefas diárias de um administrador de sistema.

Criar, Excluir, Copiar e Mover Arquivos e Diretórios
O gerenciamento de arquivos e diretórios é uma competência crítica que todo administrador de sistema deve possuir. Isso inclui a capacidade de criar / excluir arquivos de texto do zero (o núcleo da configuração de cada programa) e diretórios (onde você organizará arquivos e outros diretórios), e descobrir o tipo de arquivos existentes.
O comando touch pode ser usado não apenas para criar arquivos vazios, mas também para atualizar os horários de acesso e modificação de arquivos existentes.

Você pode usar file [nome do arquivo]
para determinar o tipo de arquivo (isso será útil antes de iniciar seu editor de texto preferido para editá-lo).

e rm [nome do arquivo]
para excluí-lo.

Quanto aos diretórios, você pode criar diretórios dentro de caminhos existentes com mkdir [diretório]
ou criar um caminho completo com mkdir -p [/caminho/completo/para/diretório]
.

Quando se trata de remover diretórios, você precisa garantir que eles estejam vazios antes de emitir o comando rmdir [diretório]
, ou usar a opção mais poderosa (manuseie com cuidado!) rm -rf [diretório]
. Esta última opção removerá recursivamente o [diretório]
e todo o seu conteúdo – então use-a por sua própria conta e risco.
Redirecionamento de Entrada e Saída e Encadeamento de Comandos
O ambiente da linha de comando fornece duas funcionalidades muito úteis que permitem redirecionar a entrada e a saída de comandos de e para arquivos, e enviar a saída de um comando para outro, chamadas de redirecionamento e encadeamento, respectivamente.
Para entender esses dois conceitos importantes, primeiro devemos compreender os três tipos mais importantes de fluxos de E/S (Entrada e Saída) de caracteres, que são de fato arquivos especiais, no sentido *nix da palavra.
- Entrada padrão (também conhecida como stdin) está por padrão conectada ao teclado. Em outras palavras, o teclado é o dispositivo de entrada padrão para inserir comandos na linha de comando.
- Saída padrão (também conhecida como stdout) está por padrão conectada à tela, o dispositivo que “recebe” a saída dos comandos e os exibe na tela.
- Erro padrão (também conhecido como stderr), é para onde as mensagens de status de um comando são enviadas por padrão, que também é a tela.
No exemplo a seguir, a saída de ls /var
é enviada para stdout (a tela), assim como o resultado de ls /tecmint. Mas neste último caso, é o stderr que é mostrado.

Para identificar mais facilmente esses arquivos especiais, cada um deles recebe um descritor de arquivo, uma representação abstrata que é usada para acessá-los. O importante a entender é que esses arquivos, assim como outros, podem ser redirecionados. Isso significa que você pode capturar a saída de um arquivo ou script e enviá-la como entrada para outro arquivo, comando ou script. Isso permitirá que você armazene no disco, por exemplo, a saída de comandos para processamento ou análise posterior.
Para redirecionar stdin (fd 0), stdout (fd 1) ou stderr (fd 2), estão disponíveis os seguintes operadores.
Redirection Operator | Effect |
> | Redirects standard output to a file containing standard output. If the destination file exists, it will be overwritten. |
>> | Appends standard output to a file. |
2> | Redirects standard error to a file containing standard output. If the destination file exists, it will be overwritten. |
2>> | Appends standard error to the existing file. |
&> | Redirects both standard output and standard error to a file; if the specified file exists, it will be overwritten. |
< | Uses the specified file as standard input. |
<> | The specified file is used for both standard input and standard output. |
Ao contrário do redirecionamento, a pipelining é realizada adicionando uma barra vertical (|)
após um comando e antes de outro.
Lembre-se:
- Redirecionamento é usado para enviar a saída de um comando para um arquivo, ou enviar um arquivo como entrada para um comando.
- Pipelining é usado para enviar a saída de um comando para outro comando como entrada.
Exemplos de Redirecionamento e Pipelining
Exemplo 1: Redirecionando a saída de um comando para um arquivo
Às vezes, você precisará iterar sobre uma lista de arquivos. Para fazer isso, você pode salvar essa lista em um arquivo e, em seguida, ler esse arquivo linha por linha. Embora seja verdade que você pode iterar diretamente sobre a saída de ls, este exemplo serve para ilustrar o redirecionamento.
# ls -1 /var/mail > mail.txt

Exemplo 2: Redirecionando stdout e stderr para /dev/null
Caso queiramos evitar que tanto stdout quanto stderr sejam exibidos na tela, podemos redirecionar ambos os descritores de arquivo para /dev/null
. Observe como a saída muda quando a redireção é implementada para o mesmo comando.
# ls /var /tecmint # ls /var/ /tecmint &> /dev/null

Exemplo 3: Usando um arquivo como entrada para um comando
Enquanto a sintaxe clássica do comando cat é a seguinte.
# cat [file(s)]
Também é possível enviar um arquivo como entrada, usando o operador de redirecionamento correto.
# cat < mail.txt

Exemplo 4: Enviando a saída de um comando como entrada para outro
Se você tiver um grande diretório ou listagem de processos e quiser ser capaz de localizar um determinado arquivo ou processo rapidamente, você vai querer encadear a listagem para o grep.
Observe que usamos dois encadeamentos no exemplo a seguir. O primeiro procura a palavra-chave necessária, enquanto o segundo eliminará o próprio comando grep
dos resultados. Este exemplo lista todos os processos associados ao usuário apache.
# ps -ef | grep apache | grep -v grep

Source:
https://www.tecmint.com/file-and-directory-management-in-linux/