Estas são as anotações padrão do Linux para o diretório atual ( .
) e o diretório pai ( ..
). Eles não têm nada a ver com o Android ou o cartão SD. Este é apenas o comportamento padrão do sistema de arquivos, e eles existem para todos os diretórios no sistema de arquivos.
$ pwd
/home/xieerqi/testdir/parent
$ ls -a
./ ../
# going to . directory doesn't do anything, you remain in same place
$ cd .
$ pwd
/home/xieerqi/testdir/parent
# going to .. brings you up one level to parent folder
$ cd ..
$ pwd
/home/xieerqi/testdir
A exceção importante é que, com o diretório raiz /
, o ..
apontará para si mesmo, já que não há um diretório mais alto para ir.
Você também não pode realizar a remoção neles (o que não faria sentido, já que você está tentando se livrar do seu diretório de trabalho atual ou de seu pai):
$ pwd
/home/xieerqi/testdir/parent
$ rm -r .
rm: refusing to remove '.' or '..' directory: skipping '.'
$
Então, o que você deve fazer sobre eles? Nada. Eles são parte do pacote Linux, por assim dizer. Isso não está quebrado, então não tente consertá-lo.
O uso freqüente de .
é via notação ./
. Isso pode ser usado no caso de você executar um script ou executável em seu diretório de trabalho atual, como ./myscript.sh
ou como argumento para comando, significando um arquivo no diretório atual, como ls ./myfile.txt
. A última abordagem é frequentemente usada com globstar para expandir para vários nomes de arquivos no diretório atual, como ls ./*
. Essa abordagem é particularmente útil com nomes de arquivos que podem conter -
e, portanto, esses nomes de arquivos podem ser mal interpretados por comandos como argumentos, enquanto ./-myfile.txt
evita esse problema.
Também é importante notar que, como os nomes de arquivos que contêm os pontos principais são considerados ocultos no Linux, esses dois diretórios "ponteiro" podem ser vistos se você especificar explicitamente o comando usado para processar nomes ocultos (a menos que seu comando, como find
faz isso por padrão).
Veja também: link