Questão Diferenças entre criar um novo arquivo usando o comando 'touch' e vinculá-lo a um arquivo


Quais são as diferenças entre quando fazemos um novo arquivo usando o comando touch e quando criamos um novo link para um arquivo? Por favor, explique em detalhes.


1


origem


man ln e man touch. Esses comandos não estão relacionados de alguma forma. - sehe


Respostas:


touch (com apenas um nome como argumento) simplesmente cria um novo arquivo (vazio). Esse arquivo não tem relação com nenhum outro arquivo, é autônomo.

Criando um novo link rígido (usando ln sem o -s switch) criará uma segunda entrada de diretório para o mesmo "arquivo". Isso significa que agora você tem duas entradas de diretório (cada uma representando um nome) que acessam o mesmo conteúdo: se você anexar a uma delas, essa alteração será representada na outra. Excluir um, manterá o outro ativo (porque excluir um "arquivo" por padrão exclui apenas a entrada do diretório. Somente se esse for o último, o conteúdo "real" será excluído).


3





'touch' cria um novo arquivo, enquanto um link físico é apenas outro nome para o mesmo arquivo.

Experimente com os seguintes comandos:

touch file1.txt
touch file2.txt
touch file3.txt
ln file3.txt file4.txt
echo "Hello world!" >> file1.txt
echo "Hello world!" >> file2.txt
echo "Hello world!" >> file3.txt
echo "Hello world!" >> file4.txt

Verifique o conteúdo: file1.txt e file2.txt devem conter uma linha. file3.txt e file4.txt ambos contêm duas linhas.


2





touch irá criar um novo arquivo enquanto ln ligará para um arquivo EXISTENTE


0





man ln e man touch. Esses comandos não estão relacionados de alguma forma.

Links não alocam um novo inode, outras entradas fazem. Você pode descobrir o número de inode para arquivos usando

 ls -i

(ou ls -li etc).

Para encontrar um arquivo com um determinado número de inode:

 find -inum 98398

Inodes são únicos somente dentro de um sistema de arquivos Hardlinking só é possível dentro de um único sistema de arquivos


0