É possível criar links simbólicos no sistema de arquivos android? (e como?)

32

É possível criar links simbólicos no sistema de arquivos android? (e como?)

(Minha versão do Android é 2.1, estou usando o Motorola Defy.)

castarco
fonte
android não é um sistema de arquivos. Qual é o sistema de arquivos no qual você tenta criar o link simbólico? Você pode usar mountno emulador de terminal para reunir essas informações
rds
2
@rds Eu sei que o Android não é um sistema de arquivos. Eu escrevi "sistema de arquivos Android" em vez de "sistema de arquivos Android" porque estava escrevendo muito rápido.
castarco
mas você ainda não conseguiu dizer qual é o sistema de arquivos subjacente que você montou
rds
2
@rds Eu diria que todos os andróides usam o mesmo sistema de arquivos. Caso contrário, eu assumiria que o sistema de arquivos depende da versão do sistema operacional. Se essas suposições estiverem incorretas, diga. É específico do telefone?
Annan

Respostas:

16

O Android suporta links simbólicos, mas determinados sistemas de arquivos (por exemplo, FAT ou RFS) não suportam e você não pode criar links simbólicos nessas partições. Se o seu dispositivo usar um sistema de arquivos que suporte links simbólicos (por exemplo, ext2, ext3, ext4, yaffs2), você poderá usar ln -so Emulador de Terminal.

Lie Ryan
fonte
3
Tentei criar um link simbólico do meu armazenamento interno visando uma pasta no cartão SD, mas consegui Operation not permitted.
user2284570
2
@ user2284570: você deve fazer uma pergunta separada e fornecer mais informações: de onde você está criando o link, de onde você está criando, como você criará o link simbólico, esteja ou não enraizado, o que são o sistema de arquivos interno e qual dispositivo você está usando e se está usando mods personalizados.
Lie Ryan
Não vou torcer antes de 2020. O sistema de arquivos interno usa exr4 e o cartão SD exfat, mas como é um link simbólico para um diretório, acho que não importa. De / storage / emulated / 0 / Videos a / storage / extSDcard / Videos, que é uma pasta. Eu também tentei com a versão busybox do ln e terminei com o mesmo resultado. Eu tenho acesso total a / storage / emulated / 0. Estou fazendo isso a partir de um emulador de terminal no dispositivo. Eu uso o Android 4.4, mas não preciso gravar no cartão SD, pois é para uso ln -s.
user2284570
1
@ user2284570: por favor crie uma nova pergunta
Lie Ryan
5

Eu acho que essa pergunta sobre superusuário responde à sua pergunta, ou seja, que o sistema de arquivos FAT no cartão SD não suporta links simbólicos.

Apenas para esclarecer (e conforme refletido na pergunta / resposta da SU que eu vinculei): o sistema operacional Android suporta links simbólicos, mas o sistema de arquivos FAT no cartão SD não.

Argalatyr
fonte
Você está sempre livre para formatar o cartão SD com um sistema de arquivos moderno (se você não usá-lo em um sistema operacional arcaica, é claro)
rds
2

É possível fazer isso através do mount -o bind /old/dir /new/dircomando conforme discutido aqui https://superuser.com/a/377737/45344

Você precisa de raiz, eu acho.

Jus12
fonte
1
Esse é o tipo de alterações que seriam perdidas na reinicialização.
user2284570
1
Este não é um link simbólico; é uma montagem de ligação.
endolith 12/12
0

Você estava lidando com /storage/emulated/0/Videos

Android gosta de fazer uso da /dev/fusepartição. Eu não acho que você possa criar um link simbólico neste sistema de arquivos. No meu htc desejo 510, vejo o seguinte:

/busybox df /storage/emulated/0                                          
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/fuse              1057284   1040844     16440  98% /mnt/shell/emulated

#

Há algumas coisas estranhas acontecendo com / storage

carimbo de história
fonte
1
Isso é uma resposta à pergunta?
FindOutIslamNow
/dev/fusenão é uma partição, é um dispositivo de caractere que programas usam para se comunicar com o kernel para montar F ilesystem em U Ser S pac E . @FindOutIslamNow sim resposta parcial, porque a implementação do FUSE do Android não suporta links simbólicos.
Irfan Latif 27/11