GNU/Linux >> Belajar Linux >  >> Linux

Inti Dari Perintah Eksternal `cd`?

Seperti yang dirujuk dalam jawaban yang bagus ini, sistem POSIX memiliki biner eksternal cd selain shell bawaan. Di OS X 10.8 adalah /usr/bin/cd . Anda tidak dapat menggunakannya seperti cd bawaan karena segera keluar setelah mengubah direktori kerjanya sendiri. Apa tujuannya?

Jawaban yang Diterima:

Ini berfungsi terutama sebagai memastikan kotak alat POSIX tersedia baik di dalam maupun di luar shell (lihat alasan POSIX untuk membutuhkannya).

Untuk cd , itu tidak terlalu berguna tetapi perhatikan bahwa cd mengubah direktori tetapi memiliki efek samping lain:ini mengembalikan status keluar yang membantu menentukan apakah Anda dapat chdir() ke direktori itu atau tidak, dan menampilkan pesan kesalahan berguna yang menjelaskan mengapa Anda tidak dapat chdir() ketika Anda tidak bisa.

Contoh:

dirs_i_am_able_to_cd_into=$(find . -type d -exec cd {} ; -print)

Efek samping potensial lainnya adalah automounting sebuah direktori.

Pada beberapa sistem, sebagian besar perintah eksternal untuk bawaan shell standar diimplementasikan sebagai symlink ke skrip yang sama dengan:

#! /bin/sh -
"${0##*/}" "[email protected]"

Itu adalah memulai shell dan menjalankan builtin di dalamnya.

Beberapa sistem lain (seperti GNU), memiliki utilitas sebagai perintah yang benar-benar dapat dieksekusi yang dapat menyebabkan kebingungan ketika perilakunya berbeda dari versi bawaan shell.


Linux
  1. Kuasai perintah Linux ls

  2. Bagaimana Cara Menetapkan Output Perintah Ke Variabel Shell?

  3. Apa arti sintaks |&dalam bahasa shell?

  1. Apa perbedaan antara &> dan >&di bash?

  2. Bagaimana cara menjalankan perintah Vim dari shell?

  3. Sembunyikan output dari perintah shell hanya jika berhasil?

  1. Alias ​​baris perintah di Linux Shell

  2. Bagaimana Cara Mendapatkan Alamat Ip Eksternal Dalam Script Shell?

  3. Apakah Tanda Kurung Benar-benar Menempatkan Perintah Dalam Subkulit?