Учитывая следующие типичные точки монтирования:
$ df --output=target
Mounted on
/
/dev
/run
/sys/fs/cgroup
/run/lock
/run/shm
/run/user
stat --format% m
будет печатать только точку монтирования с возможностью перехвата по кругу ( хотя вам нужно проверить код выхода, чтобы однозначно обнаружить ошибку разрешения; подходы с использованием таблицы монтирования выигрывают здесь):
$ stat --format %m /
/
$ stat --format %m /tmp
/
$ stat --format %m /proc
/proc
$ stat --format %m /run
/run
$ stat --format %m /run/mount
/run
$ stat --format %m /run/user
/run/user
$ stat --format %m /run/user/1000/dconf
/run/user
$ stat --format %m /run/user/1000/gvfs
/run/user/1000/gvfs
Символьные ссылки, как обычно, требуют некоторой осторожности:
$ ls -lh ~/.gvfs
/home/cwillu/.gvfs -> /run/user/1000/gvfs
$ stat --format %m ~/.gvfs
/run/user/1000/gvfs
$ stat --format %m ~/.gvfs
/
И, конечно, не забывайте использовать кавычки при написании сценариев. Рассмотрим путь к точке монтирования с пробелами и т. Д .:
$ mkdir /tmp/Something\ Like\ This\!
$ sudo mount none /tmp/Something\ Like\ This\! -t tmpfs
$ stat --format %m /tmp/Something\ Like\ This\!
/tmp/Something Like This!
$ touch /tmp/Something\ Like\ This\!/pretend-I\'m-big
$ ls /tmp/Something\ Like\ This\!
pretend-I'm-big
Насколько велики вы?
$ du $(stat --format %m /tmp/Something\ Like\ This\!/)
du: cannot access /tmp/Something: No such file or directory
du: cannot access Like: No such file or directory
du: cannot access This!: No such file or directory
$ du "$(stat --format %m /tmp/Something\ Like\ This\!/)"
0 /tmp/Something Like This!
Завершение вкладки в моем дистрибутиве даже не дает этого правильного ответа, поэтому мы просто будем использовать подстановочные знаки для этой точки монтирования с возвратами каретки и переводы строки и пробелы:
$ stat --format %m /tmp/Something*
/tmp/Something
Like This!
$ a="$(stat --format %m /tmp/Something*)"
# the above assignment is actually the one place you don't need quotes,
# but `export a=...` or similar _would_ need them, so we'll just put them in;
# they don't change the behaviour in this form of assignment.
$ stat "$a"
File: ‘/tmp/Something \r\n\rLike This!’
Size: 40 Blocks: 0 IO Block: 4096 directory
Device: 7bh/123d Inode: 1279171 Links: 2
Access: (1777/drwxrwxrwt) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2016-09-30 11:43:17.933467344 -0600
Modify: 2016-09-30 11:43:17.933467344 -0600
Change: 2016-09-30 11:43:17.933467344 -0600
Birth: -