GNU/Linux >> Belajar Linux >  >> Linux

Jelaskan Pilihan Perintah Readlink?

Adakah yang bisa menjelaskan kepada saya opsi readlink berikut ini? perintah dalam bahasa sederhana:

   -f, --canonicalize
      canonicalize  by  following  every symlink in every component of
      the given name recursively; all  but  the  last  component  must
      exist

   -e, --canonicalize-existing
      canonicalize  by  following  every symlink in every component of
      the given name recursively, all components must exist

   -m, --canonicalize-missing
      canonicalize by following every symlink in  every  component  of
      the  given  name recursively, without requirements on components
      existence

Jawaban yang Diterima:

Saya rasa itu cukup jelas, jadi saya tidak begitu tahu bagian mana yang terdengar ambigu bagi Anda…
Mari kita lihat dengan sebuah contoh:

–kanonikalisasi

$ mkdir /tmp/realdir
$ mkdir /tmp/subdir
$ ln -s /tmp/realdir /tmp/subdir/link
$ cd /tmp

$ readlink -f ./subdir/link/nonexistentdir/
/tmp/realdir/nonexistentdir

$ readlink -f ./subdir/link/nonexistentfile.txt
/tmp/realdir/nonexistentfile.txt

Apapun pilihannya, readlink akan:
– menerjemahkan jalur relatif ke jalur absolut
– menerjemahkan nama symlink ke jalur sebenarnya

Dan seperti yang Anda lihat di atas, dengan -f , readlink tidak peduli jika bagian terakhir dari jalur ini (di sini nonexistentfile.txt ) ada atau tidak.

Jika bagian lain dari jalur ini tidak ada, readlink tidak akan menghasilkan apa-apa dan akan memiliki kode pengembalian yang berbeda dari 0 (yang berarti terjadi kesalahan). Lihat:

$ readlink -f /tmp/fakedir/foo.txt
$ echo $?
1

–mengkanonikalisasi-yang sudah ada

Jika Anda mencoba hal yang sama dengan -e :

$ readlink -e ./subdir/link
/tmp/realdir

$ readlink -e ./subdir/link/nonexistentfile.txt
$ echo $?
1

Dengan -e , jika salah satu komponen jalur tidak ada, readlink tidak akan menghasilkan apa-apa dan akan memiliki kode pengembalian yang berbeda dari 0.

–kanonikalisasi-hilang

-m pilihan adalah kebalikan dari -e . Tidak ada tes yang akan dilakukan untuk memeriksa apakah ada komponen jalur:

$ readlink -m ./subdir/link/fakedir/fakefile
/tmp/realdir/fakedir/fakefile

$ ln -s /nonexistent /tmp/subdir/brokenlink

$ readlink -m ./subdir/brokenlink/foobar
/nonexistent/foobar

Linux
  1. Kuasai perintah Linux ls

  2. Tampilan praktis dari perintah xargs

  3. Opsi ps yang berguna

  1. Bagaimana cara menggunakan perintah nama dasar?

  2. Perintah cari di Linux

  3. Opsi Perintah grub-install

  1. Pengantar perintah alternatif di Linux

  2. dpkg-konfigurasi ulang Opsi Perintah

  3. Opsi Perintah ufw