Điều này sẽ di chuyển foo.cđến thư mục mới bazvới thư mục cha bar.
mv foo.c `mkdir -p ~/bar/baz/ && echo $_`
Các -ptùy chọn để mkdirsẽ tạo thư mục trung gian theo yêu cầu.
Không có-p tất cả các thư mục trong tiền tố đường dẫn phải tồn tại.
Mọi thứ bên trong backticks ``được thực thi và đầu ra được trả về trong dòng như một phần của lệnh của bạn.
Vì mkdirkhông trả về bất cứ thứ gì, chỉ có đầu ra của echo $_sẽ được thêm vào lệnh.
$_tham chiếu đối số cuối cùng đến lệnh được thực hiện trước đó.
Trong trường hợp này, nó sẽ trả về đường dẫn đến thư mục mới của bạn ( ~/bar/baz/) được chuyển đếnmkdir lệnh.
Tôi đã giải nén một kho lưu trữ mà không đưa ra đích và muốn di chuyển tất cả các tệp ngoại trừ
demo-app.ziptừ thư mục hiện tại của tôi sang một thư mục mới được gọi
demo-app.
Dòng sau đây thực hiện thủ thuật:
mv `ls -A | grep -v demo-app.zip` `mkdir -p demo-app && echo $_`
ls -Atrả về tất cả các tên tệp bao gồm các tệp ẩn ( ngoại trừ ẩn .và.. ).
Biểu tượng ống |được sử dụng để dẫn đầu ra của lslệnh tới grep( một tiện ích tìm kiếm dòng lệnh, văn bản thuần túy ).
Các -vlá cờ chỉ đạo grepđể tìm và trả lại toàn bộ tên file trừ demo-app.zip.
Danh sách các tệp đó được thêm vào dòng lệnh của chúng tôi dưới dạng đối số nguồn cho lệnh di chuyển mv. Đối số đích là đường dẫn đến thư mục mới được chuyển đến mkdirtham chiếu bằng cách sử dụng $_và đầu ra bằng cách sử dụng echo.