นี้จะย้ายfoo.c
ไปยังไดเรกทอรีใหม่กับไดเรกทอรีแม่baz
bar
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
( ยูทิลิตีการค้นหาบรรทัดคำสั่งแบบข้อความธรรมดา ) ธงนำในการค้นหาและกลับชื่อไฟล์ทั้งหมดไม่รวม รายชื่อของไฟล์ที่ถูกเพิ่มเข้าไปในบรรทัดคำสั่งของเราเป็นข้อโต้แย้งที่มากับคำสั่งย้าย
อาร์กิวเมนต์เป้าหมายคือเส้นทางไปยังไดเรกทอรีใหม่ผ่านไปอ้างอิงใช้และการใช้เอาท์พุท
-v
grep
demo-app.zip
mv
mkdir
$_
echo