Saya dapat melakukan df .
untuk mendapatkan beberapa info di mount yang ada di direktori saat ini, dan saya bisa mendapatkan semua info yang saya inginkan mount
, tetapi mendapatkan banyak info (info tentang mount lain). Saya bisa menolaknya, tetapi saya bertanya-tanya apakah ada cara yang lebih baik.
Apakah ada beberapa perintah mountinfo
sehingga mountinfo .
memberikan info yang saya inginkan (seperti df .
, tetapi dengan info yang mount
memberikan.)
Saya menggunakan Debian Gnu + Linux.
filesystems
mount
disk-usage
ctrl-alt-delor
sumber
sumber
stat
perintah dapat digunakan juga. Namun, saya tidak yakin apakah%m
opsi yang memberikan titik pemasangan didukung di versi sistem Anda. Saya memeriksa sistem saya dan sepertinya tidak mengembalikan titik mount.stat "--printf=%m\n" .
mendapatkan mount-point dari sistem file tempat direktori saat ini. Dengan demikian memungkinkan kita untuk menyederhanakan beberapa jawaban. Terima kasih.Jawaban:
Saya pikir Anda menginginkan sesuatu seperti ini:
Saat menggunakan opsi
jika path bukan file atau direktori mountpoint,findmnt
periksa elemen path dalam urutan terbalik untuk mendapatkan mountpoint. Anda hanya dapat mencetak bidang tertentu melalui-o, --output [list]
.Lihat
findmnt --help
daftar bidang yang tersedia.Atau, Anda dapat menjalankan:
Masalah yang Anda hadapi adalah bahwa semua jalur relatif terhadap sesuatu atau lainnya, jadi Anda hanya perlu berjalan di atas pohon. Setiap saat.
findmnt
adalah anggota dari paket util-linux dan telah ada selama beberapa tahun sekarang. Sekarang, terlepas dari distro Anda, itu harus sudah diinstal pada mesin Linux Anda jika Anda juga memilikimount
alat itu.findmnt
akan mencetak semua info mount tanpa argumen mount-point, dan hanya itu untuk argumennya dengan satu. Ini-D
adalah opsi menirudf
. Tanpa-D
outputnya mirip denganmount
- tetapi jauh lebih dapat dikonfigurasi. Cobafindmnt --help
dan lihat sendiri.Saya memasukkannya ke dalam subshell sehingga direktori shell saat ini tidak berubah.
Begitu:
KELUARAN
Jika Anda tidak memiliki
-D
opsi yang tersedia untuk Anda (Tidak dalam versi util-linux yang lebih lama) maka Anda tidak perlu takut - ini lebih dari sekadar saklar kenyamanan. Perhatikan judul kolom yang dihasilkannya untuk setiap panggilan - Anda dapat memasukkan atau mengecualikannya untuk setiap doa dengan-o
sakelar utput. Saya bisa mendapatkan output yang sama seperti yang-D
disediakan seperti:KELUARAN
sumber
-D
, saya tidak punya opsi itu. (Saya di Debian7, util-linux 2.20.1-5.3)df
- Saya bersedia bertaruh itu loop, Anda hanya tidak perlu mengatakannya untuk melakukannya.findmnt $(stat "--printf=%m\n" .)
findmnt
memiliki-T
opsi yang dapat memotongcd ..
loop. Mungkin bermanfaat bagi orang lain.Cara Linux / Unix adalah memiliki kotak peralatan utilitas kecil yang, jika digabungkan, memberi Anda hasil yang Anda cari.
Mereka cenderung tidak memiliki utilitas untuk setiap kesempatan. Sebaliknya Anda memiliki banyak utilitas kecil yang bermanfaat yang dikombinasikan bersama dengan pipa dll. Keuntungannya adalah Anda dapat menulis utilitas sendiri dengan mudah jika tidak ada yang tersedia.
Misalnya, untuk mendapatkan info yang Anda cari, Anda dapat menggunakan:
Jika Anda ingin menggunakan kembali yang di atas dengan direktori yang berbeda, buat skrip:
Simpan sebagai
mountinfo
dan buat itu dapat dieksekusi (chmod +x mountinfo
). Anda kemudian dapat menggunakannya sebagai:Jika Anda menginginkan sistem yang memiliki utilitas untuk semua yang tidak ada yang saling beroperasi satu sama lain, maka Mr Gates tertentu mungkin dapat membantu Anda ;-)
sumber
--output
hanya ada di versi terbaru GNU coreutils (≥8.22).mount
tanpa ada opsi yang kelihatannya sedikit setelah dipikirkan: dengan opsi yang Anda buat mount point, tanpa itu daftar mereka, saya berharap untuk alat daftar yang lebih baik. Seperti yang kita lihat @mikeserv telah menunjukkan kepada kitafindmnt
.Ini bisa agak berantakan jika titik mount berisi kosong, tetapi ini harus berfungsi kecuali dalam kasus di mana titik mount berisi baris baru:
df -P
menghasilkan satu baris untuk sistem file; tanpa opsi itu,df
dapat menghasilkan dua baris jika titik pemasangannya panjang. Nama titik mount dimulai pada kolom yang sama dengan label "Mounted on" di baris header.Setelah kami mendapatkan titik mount, kami menerima untuk itu di output dari
mount
.sumber
Saya tidak tahu perintah, tetapi Anda bisa membuat fungsi. Anda dapat menambahkan di bawah ini ke
.bashrc
:Ini mengeksekusi
mount
perintah dan meneruskan output kegrep
.grep
akan mencari outputdf -P "$1" | tail -n 1 | awk '{print $1}'
, dan memecahnya:df -P "$1"
akan berjalandf
pada argumen yang dilewatkan ke fungsi,tail -n 1
hanya akan menampilkan baris kedua, baris yang berisipartition
info.awk '{print $1}'
akan mencetak bagian pertama dari baris itu, yang merupakan nomor disk / partisi, misalnya/dev/sda5
. Itulah yanggrep
akan dicari dalam perintah mount, dan mengeluarkannya.Sumber
.bashrc
file Anda untuk menerapkan perubahan, atau keluar dan masuk kembali.Sekarang, jika Anda menjalankan
mountinfo .
, Anda akan mendapatkan output yang Anda inginkan.sumber
mount
tanpa opsi tampaknya sedikit setelah dipikirkan: dengan opsi yang Anda buat poin mount, tanpa itu daftar mereka, saya berharap untuk alat daftar yang lebih baik. Seperti yang kita lihat @mikeserv telah menunjukkan kepada kitafindmnt
.Jika Anda menggunakan versi GNU coreutils df yang tidak sepenuhnya kuno, maka
echo $(df . --output=target | tail -n 1)
berfungsilah. Demikian juga denganstat -c '%m' .
, meskipun saya perhatikan bahwa https://linux.die.net/man/1/stat tidak memiliki dokumentasi%m
opsi format.Melakukan ini dengan mudah adalah melelahkan: tidak satu pun di atas akan bekerja dengan versi BSD atau Cygwin dari stat atau df. Jika bukan karena kemungkinan spasi di jalur titik mount,
df -P . | tail -1 | awk '{ print $NF}'
akan baik, tetapi sering USB flash drive memiliki ruang dalam nama volume, yang mungkin akan muncul di jalur mount dan hancurkan ini. Untuk portabilitas, Perl dapat diinstal secara praktis di mana-mana dan CPAN memiliki modul Sys :: Filesystem :: MountPoint yang menyediakan fungsionalitas yang diinginkan.sumber
echo $()
ditambahkan ke perintah?