นี้จะย้ายfoo.cไปยังไดเรกทอรีใหม่กับไดเรกทอรีแม่bazbar
mv foo.c `mkdir -p ~/bar/baz/ && echo $_`
-pตัวเลือกในการmkdirจะสร้างไดเรกทอรีกลางตามความจำเป็น
หากไม่มี-pไดเรกทอรีทั้งหมดในคำนำหน้าเส้นทางต้องมีอยู่แล้ว
ทุกอย่างภายใน backticks ``จะถูกดำเนินการและเอาท์พุทจะถูกส่งกลับในบรรทัดเป็นส่วนหนึ่งของคำสั่งของคุณ
เนื่องจากmkdirไม่ได้ส่งคืนอะไรecho $_จะมีการเพิ่มเฉพาะเอาต์พุตของคำสั่ง
$_อ้างอิงอาร์กิวเมนต์สุดท้ายกับคำสั่งที่เรียกใช้ก่อนหน้านี้
ในกรณีนี้มันจะกลับเส้นทางไปยังไดเรกทอรีใหม่ของคุณ ( ~/bar/baz/) ผ่านไปยังmkdirคำสั่ง
ฉันซิปที่เก็บโดยไม่ให้ปลายทางและต้องการที่จะย้ายไฟล์ทั้งหมดยกเว้นจากไดเรกทอรีปัจจุบันของฉันไปยังไดเรกทอรีใหม่ที่เรียกว่า
demo-app.zip บรรทัดต่อไปนี้ทำการหลอกลวง:
demo-app
mv `ls -A | grep -v demo-app.zip` `mkdir -p demo-app && echo $_`
ls -Aส่งคืนชื่อไฟล์ทั้งหมดรวมถึงไฟล์ที่ซ่อนอยู่ ( ยกเว้นนัย.และ.. )
สัญลักษณ์ไพพ์|ใช้เพื่อไพพ์เอาต์พุตของlsคำสั่งถึงgrep( ยูทิลิตีการค้นหาบรรทัดคำสั่งแบบข้อความธรรมดา ) ธงนำในการค้นหาและกลับชื่อไฟล์ทั้งหมดไม่รวม รายชื่อของไฟล์ที่ถูกเพิ่มเข้าไปในบรรทัดคำสั่งของเราเป็นข้อโต้แย้งที่มากับคำสั่งย้าย
อาร์กิวเมนต์เป้าหมายคือเส้นทางไปยังไดเรกทอรีใหม่ผ่านไปอ้างอิงใช้และการใช้เอาท์พุท
-vgrepdemo-app.zip
mvmkdir$_echo