Chciałbym sprawdzić, w skrypcie bash, jaki typ systemu plików to katalog.
Pomysł jest podobny
if [path] is on a [filesystem] filesystem then
filesystem specific command
end if
linux
bash
shell-script
filesystems
Dremor
źródło
źródło
Odpowiedzi:
Zastosowanie
df
. Możesz przekazać mu ścieżkę, a otrzymasz informacje o systemie plików dla tej ścieżki. Jeśli potrzebujesz typu systemu plików, użyj-T
przełącznika:Aby wyodrębnić typ systemu plików, możesz go przeanalizować (użyj
-P
przełącznika, aby uniknąćdf
łamania linii, jeśli część urządzenia jest zbyt długa):Możesz więc użyć tej wartości w takiej
if
konstrukcji:Uważaj, że kolumna urządzenia może zawierać spacje (ale jest to rzadkie), w takim przypadku analiza nie powiedzie się.
źródło
W systemie z zainstalowaną komendą GNU stat (jak całkiem dobrze z każdą standardową dystrybucją Linuksa), możesz uzyskać typ fs dla danego pliku bez konieczności parsowania za pomocą
stat
komendy:-f
każestat
podać informacje o systemie plików zamiast pliku i-c %T
ustawia format wyjściowy tak, aby zawierał tylko typ systemu plików czytelny dla człowieka (%T
).Więc możesz użyć tego (w bash) jako:
man stat
dostarczy więcej informacji.źródło
Z
findmnt
(częściąutil-linux
):Podczas korzystania z opcji
jeśli ścieżka nie jest plikiem lub katalogiem punktu montowania,findmnt
sprawdza elementy ścieżki w odwrotnej kolejności, aby uzyskać punkt montowania. Pozostałe dwie opcje pomijają wiersz nagłówka:-n, --noheading
i wybierz kolumny do wyświetlenia:-o, --output
df
fromcoreutils
ma podobną opcję--output=
drukowania tylko niektórych pól, takich jakfstype
np .:nie ma opcji, aby usunąć nagłówek, więc będziesz musiał przesłać dane wyjściowe do np
| sed 1d
źródło
findmnt
narzędzie, nawet z wyjściem TUI do rysowania linii. Dzięki!