ฉันสร้างฟังก์ชั่นใน~/.bashrc
คืนนี้เพื่อค้นหาไฟล์ปฏิบัติการที่ไม่ได้อยู่ในเส้นทางของระบบและไม่ใช่ไดเรกทอรี:
# Quickly locate executables not in the path
xlocate () {
locate -0r "$1" | xargs -0 -I{} bash -c '[[ -x "$1" ]] && [[ ! -d "$1" ]] \
&& echo "executable: $1"' _ {}
} # xlocate ()
ข้อดีคือมันจะค้นหา Linux distros สามตัวและการติดตั้ง Windows ภายในfind
ไม่กี่วินาทีโดยที่คำสั่งใช้เวลา 15 นาที
ตัวอย่างเช่น:
$ time xlocate llocate
executable: /bin/ntfsfallocate
executable: /home/rick/restore/mnt/e/bin/llocate
executable: /mnt/clone/bin/ntfsfallocate
executable: /mnt/clone/home/rick/restore/mnt/e/bin/llocate
executable: /mnt/clone/usr/bin/fallocate
executable: /mnt/e/bin/llocate
executable: /mnt/old/bin/ntfsfallocate
executable: /mnt/old/usr/bin/fallocate
executable: /usr/bin/fallocate
real 0m0.504s
user 0m0.487s
sys 0m0.018s
หรือสำหรับไดเรกทอรีทั้งหมดและทั้งหมดคือหมวดย่อย:
$ time xlocate /mnt/e/usr/local/bin/ | wc -l
65
real 0m0.741s
user 0m0.705s
sys 0m0.032s