O usuário tem um script de backup (incremental) usando rsync
, para um dispositivo externo. Isso estava errando em um SSD que ele tinha. Acontece que seu dispositivo foi formatado exFAT
. Isso significa que preciso detectar isso no script , pois preciso alterar as opções para rsync
(por exemplo, exFAT não pode lidar com links simbólicos, sem permissões de proprietário/grupo, etc.).
O usuário está executando o Linux Mint. Eu corro o Ubuntu. Só posso supor/esperar que uma solução para o meu Ubuntu funcione para o seu Mint.
Eu olhei:
- Como sei se uma partição é ext2, ext3 ou ext4?
- Como saber em que tipo de sistema de arquivos você está?
- https://www.tecmint.com/find-linux-filesystem-type/
Há uma variedade de boas sugestões lá, mas não vejo uma que atenda aos meus requisitos, que são:
- Deve relatar (analisável)
ntfs
/exfat
explicitamente, não apenas dizerfuseblk
(o que será para ambosexfat
&ntfs
, preciso distinguir). - Não deve exigir sudo .
- Deve ser executável a partir de um caminho de diretório no sistema de arquivos (pode assumir que será montado), não apenas a partir de um arquivo
/dev/...
.
Das sugestões que tentei:
fdisk -l
,parted -l
,file -sL
: requer sudo e/ou/dev/...
dispositivo de blocomount
: requer/dev/...
, apenas relatóriosfuseblk
df -T
,stat -f -c %T
: aceita diretório, mas informa apenasfuseblk
lsblk -f
,blkid
: requer/dev/...
dispositivo de bloco
Existe um comando único e simples que atenda a todos esses critérios? Ou, lsblk
/ blkid
parecem relatar exfat
/ ntfs
corretamente, se eu precisar passá-los /dev
como faço para obter isso adequadamente do caminho do diretório no script?
Obrigado aos outros pôsteres por responder/sugerir. Aqui está a minha solução completa.
df -P
pode ser usado para obter o dispositivo do caminho e pode ser alimentadolsblk --fs
para obter o sistema de arquivos exato. Então, um one-liner é:Se tudo o que você precisa saber é que o sistema de arquivos é
fuseblk
--- que cobre tantontfs
&exfat
e acaba sendo suficiente para meus propósitos --- isso pode ser determinado com muito mais simples:Não tenho certeza se entendi sua pergunta completamente, então vou oferecer isso como um "ponto de partida". Se chegar perto, tenho certeza de que você pode ajustá-lo para obter o que precisa:
que tal
df .
emount
?primeiro vamos pegar o ponto de montagem
$mp
enquanto segura o hoding do nome do dispositivo/a/dir
agora, ponto de montagem
isso deve retornar o tipo de montagem (seja
xfs
,etx3
, ...)editar:
$5