ฉันต้องการค้นหาไฟล์จากนั้นป้อนไดเรกทอรีที่มีไฟล์ ฉันพยายาม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)