ฉันต้องการค้นหาไฟล์จากนั้นป้อนไดเรกทอรีที่มีไฟล์ ฉันพยายามfind /media/storage -name "Fedora" | xargs cd
แต่แน่นอนฉันis not a directory
ผิดพลาด
ฉันจะป้อนไดเรกทอรีหลักด้วยคำสั่งหนึ่งบรรทัดได้อย่างไร
shopt -s globstar
คุณทำได้cd /media/storage/**/Fedora
แต่นั่นไม่ได้หยุดประเมิน glob ในนัดแรก (ดังนั้นจึงช้ากว่าโซลูชันของ steeldriver สำหรับการใช้งานแบบโต้ตอบสิ่งที่ฉันมักจะทำคือเข้าถึงเมาส์และคัดลอก / วางชื่อไดเรกทอรี (และ alt + backspace ตามต้องการเพื่อแยกองค์ประกอบของเส้นทางที่ฉันไม่ต้องการ) แต่ถ้าคุณทำสิ่งนี้มากฉันคิดว่าฟังก์ชั่นของเชลล์น่าจะคุ้มค่า
xargs cd
ไม่สามารถทำงานได้ cd
สามารถทำงานเป็นเชลล์บิวด์อินได้เท่านั้นเนื่องจากต้องแก้ไขบริบทของเชลล์เอง ไม่มีวิธีที่xargs
กระบวนการลูกสามารถทำได้ IDK ถ้านั่นคือสิ่งที่คุณหมายถึงโดย "แน่นอน" หรือหากเส้นทางที่find
พิมพ์มีช่องว่างซึ่งจะถูกแยกด้วย xargs เนื่องจากคุณไม่ได้ใช้-d \n
หรืออะไรก็ตาม find -exec {} \;
หรือ
cd
เช่นนั้น cd
เป็นทุบตีในตัวถ้าcd
เป็นคำสั่งที่แยกต่างหากจากนั้นมันจะเปลี่ยน dir (ของมันเอง) แล้วออกจาก (กลับคุณไปที่เปลือกหอยที่อยู่ในสถานะเดียวกับก่อนไม่มีการเปลี่ยนแปลงของ dir)