ความแตกต่างระหว่างwhich
และwhereis
คืออะไร
which
และwhereis
ให้ผลผลิตที่แตกต่างกัน (บน macOS Sierra) apple.stackexchange.com/questions/259047/…
type
ดีกว่า นอกจากนี้ยังรู้เกี่ยวกับนามแฝงที่กำหนดไว้ฟังก์ชั่น ฯลฯ
ความแตกต่างระหว่างwhich
และwhereis
คืออะไร
which
และwhereis
ให้ผลผลิตที่แตกต่างกัน (บน macOS Sierra) apple.stackexchange.com/questions/259047/…
type
ดีกว่า นอกจากนี้ยังรู้เกี่ยวกับนามแฝงที่กำหนดไว้ฟังก์ชั่น ฯลฯ
คำตอบ:
เรียนรู้เกี่ยวกับwhereis
และwhich
ใช้งานwhatis
อย่างไร
$ whatis which
which (1) - shows the full path of (shell) commands
$ whatis whereis
whereis (1) - locate the binary, source, and manual page files for a command
โดยทั่วไปwhereis
ค้นหาไฟล์ "อาจมีประโยชน์" ในขณะที่which
ค้นหาไฟล์ที่เรียกทำงานได้เท่านั้น
whereis
ผมไม่ค่อยใช้ ในทางกลับกันwhich
มีประโยชน์มากโดยเฉพาะในสคริปต์ which
คำตอบสำหรับคำถามต่อไปนี้: คำสั่งนี้มาจากไหน?
$ which ls
/bin/ls
$ whereis ls
ls: /bin/ls /usr/share/man/man1p/ls.1p.bz2 /usr/share/man/man1/ls.1.bz2
whereis
which
which
แสดงเส้นทางที่แท้จริง คุณแน่ใจหรือไม่ว่าเส้นทางที่ชี้ไปwhich
ไม่ใช่แค่ symlink ไปยังเส้นทางที่ชี้ไปwhereis
? อาจเป็นชื่อแทนเชลล์ type your_cmd_here
ในทุบตีลองใช้
whereis
ค้นหาตำแหน่งมาตรฐาน * nix สำหรับคำสั่งที่ระบุ
which
ค้นหา PATH เฉพาะผู้ใช้ของคุณ (ซึ่งอาจรวมถึงสถานที่บางแห่งที่มีการค้นหาและอาจไม่รวมถึงสถานที่อื่น ๆ ซึ่งอาจรวมถึงบางสถานที่ที่whereis
ไม่ได้ค้นหาถ้าคุณเพิ่มใน PATH ของคุณ)
อ้างถึงหน้าคนของพวกเขา:
โดยที่ :
whereis หาตำแหน่งส่วนต้นทาง / ไบนารีและคู่มือสำหรับไฟล์ที่ระบุ
ตัวอย่างเช่น
$ whereis php
php: /usr/bin/php /usr/share/php /usr/share/man/man1/php.1.gz
เช่นไฟล์ปฏิบัติการ "php" และอื่น ๆ (เช่น man pages)
และที่ :
ซึ่งส่งคืนชื่อพา ธ ของไฟล์ที่จะถูกดำเนินการในสภาพแวดล้อมปัจจุบัน
ตัวอย่างเช่น
$ which php
/usr/bin/php
นั่นคือมีเพียงปฏิบัติการ "php"
ซึ่งค้นหาไฟล์เรียกทำงานในไดเร็กทอรีที่ระบุโดยตัวแปรสภาวะแวดล้อม PATH และหากค้นพบชื่อพา ธ แบบเต็มของไฟล์เรียกทำงานนี้จะถูกพิมพ์
$ ซึ่ง ls
/ bin / ls
$ ซึ่ง ifconfig
$ # ไม่มีเอาต์พุตเนื่องจาก ifconfig มีอยู่ใน PATH ของรูทเท่านั้น
whereisค้นหา executables แฟ้มแหล่งที่มาและหน้าคู่มือการใช้ฐานข้อมูลที่สร้างขึ้นโดยระบบอัตโนมัติ
$ whereis น้อย
กว่า: / bin / less / usr / bin / less / usr / bin / X11 / less /usr/share/man/man1man1/less.1.gz
แต่ดูเหมือนว่าwhereisและหาไม่ได้ใช้ฐานข้อมูลเดียวกัน เมื่อติดตั้งซอฟต์แวร์และจากนั้นก็ใช้whereisและหาทันทีเพื่อค้นหาซอฟต์แวร์นี้ ผลที่ได้คือwhereisสามารถหาไฟล์ที่เกี่ยวข้องกับซอฟแวร์ในขณะนี้หาได้ไม่ พวกเขาใช้ฐานข้อมูลที่แตกต่างกันจริงๆหรือ ฐานข้อมูลทำงานอย่างไร - ดี, วิธีการปฏิเสธที่จะเป็นคนอวดรู้? :)