นี่คือรุ่นที่มีการปรับปรุงเล็กน้อย
อย่ารวมชื่อผู้ใช้ของคุณในสคริปต์ใช้~
เพื่ออ้างถึงไดเรกทอรีบ้านของคุณ
เก็บชื่อของไดเรกทอรีผลลัพธ์ไว้ในตัวแปร สิ่งนี้แสดงวิธีใช้ตัวแปรในเชลล์สคริปต์
ทำให้ส่วนที่ลบผลลัพธ์ของการค้นหาก่อนหน้ามีประสิทธิภาพมากขึ้น: จะไม่ลบสิ่งที่ไม่ใช่ลิงก์สัญลักษณ์
ที่สำคัญที่สุด: รุ่นของคุณจะล้มเหลวด้วยชื่อไฟล์ที่มีช่องว่างหรืออักขระพิเศษเพราะเปลือกไม่ reparsing ผลการบางส่วนและ$(...)
$file
คุณควรใส่การแทนที่ตัวแปรในเครื่องหมายคำพูดคู่ (เช่นเขียน"$file"
) เสมอ เวอร์ชันของฉันทำงานอย่างถูกต้องกับชื่อไฟล์ทั้งหมด (ยกเว้นว่ามีบรรทัดใหม่ แต่ไม่สามารถหลีกเลี่ยงได้locate
)
#!/bin/bash
results_dir=~/Desktop/results
mkdir -p "$results_dir"
find "$results_dir" -type l -exec rm {} +
echo "Please enter some input: "
read -r input_variable
locate "$input_variable" | while read -r line; do
ln -s "$line" "$results_dir/"
done