GNU/Linux >> Belajar Linux >  >> Linux

-bash:/bin/cd:Tidak ada file atau direktori seperti itu - secara otomatis mengeksekusi ls setelah cd

Sistem Anda (seperti banyak sistem Unix) tidak memiliki cd eksternal perintah (setidaknya tidak di jalur itu). Bahkan jika ada, ls akan memberi Anda daftar direktori dari direktori asli. Perintah eksternal tidak pernah dapat mengubah direktori untuk proses pemanggilan (shell Anda).

Hapus alias dari lingkungan dengan unalias cd (dan juga hapus definisinya dari file inisialisasi shell yang mungkin telah Anda tambahkan).

Dengan fungsi shell, Anda bisa membuatnya berfungsi sebagai cd biasanya begitu, dengan doa tambahan ls di bagian akhir jika cd berhasil:

cd () {
    command cd "[email protected]" && ls -lah
}

atau,

cd () { command cd "[email protected]" && ls -lah; }

Ini akan memanggil cd perintah yang dibangun ke dalam shell Anda dengan argumen baris perintah yang sama dengan yang Anda berikan pada fungsi tersebut. Jika perubahan direktori berhasil, ls akan lari.

command perintah menghentikan shell dari menjalankan fungsi secara rekursif.

Definisi fungsi (seperti yang tertulis di atas) akan masuk ke file startup shell Anda. Dengan bash , ini mungkin ~/.bashrc . Definisi fungsi kemudian akan aktif di sesi shell interaktif baru berikutnya . Jika Anda ingin aktif sekarang , lalu jalankan definisi fungsi apa adanya di prompt shell interaktif, yang akan mendefinisikannya dalam sesi interaktif Anda saat ini.

Pada sistem di mana cd tersedia sebagai perintah eksternal, perintah ini juga tidak mengubah direktori untuk proses pemanggilan. Satu-satunya penggunaan nyata untuk perintah semacam itu adalah untuk memberikan kepatuhan POSIX dan untuk bertindak sebagai ujian apakah mengubah direktori ke direktori tertentu dapat dilakukan .


Saya bisa menyelesaikannya dengan menghapus alias lagi dengan unalias cd


Itu terjadi karena:

$ type cd

cd is a shell builtin

Linux
  1. Cara Memperbaiki '/ usr/bin/dirmngr':Tidak ada file atau direktori seperti itu

  2. /usr/bin Vs /usr/local/bin Di Linux?

  3. /usr/bin/ls:/usr/bin/ls:Tidak Dapat Mengeksekusi File Biner?

  1. Debian – -bash:/usr/bin/nano:Tidak Ada File Atau Direktori?

  2. Mengapa /bin/sh Menunjuk Ke /bin/dash Dan Bukan /bin/bash??

  3. Kesalahan dengan gradlew:/usr/bin/env:bash:Tidak ada file atau direktori seperti itu

  1. -bash:/usr/bin/virtualenvwrapper.sh:Tidak ada file atau direktori tersebut

  2. unix:///var/run/supervisor.sock tidak ada file seperti itu

  3. /dev/sdb:Tidak ada file atau direktori seperti itu (tetapi /dev/sdb1 dll. ada)