Ini akan pindah foo.c
ke direktori baru baz
dengan direktori induk bar
.
mv foo.c `mkdir -p ~/bar/baz/ && echo $_`
The -p
pilihan untuk mkdir
akan membuat direktori menengah seperti yang diperlukan.
Tanpa -p
semua direktori di jalur awalan harus sudah ada.
Segala sesuatu di dalam backtick ``
dieksekusi dan output dikembalikan in-line sebagai bagian dari perintah Anda.
Karena mkdir
tidak mengembalikan apa pun, hanya output dari yang echo $_
akan ditambahkan ke perintah.
$_
referensi argumen terakhir ke perintah yang dieksekusi sebelumnya.
Dalam hal ini, ini akan mengembalikan path ke direktori baru Anda ( ~/bar/baz/
) yang diteruskan ke mkdir
perintah.
Saya membuka ritsleting arsip tanpa memberikan tujuan dan ingin memindahkan semua file kecuali
demo-app.zip
dari direktori saya saat ini ke direktori baru yang disebut
demo-app
.
Baris berikut melakukan trik:
mv `ls -A | grep -v demo-app.zip` `mkdir -p demo-app && echo $_`
ls -A
mengembalikan semua nama file termasuk file tersembunyi ( kecuali untuk yang implisit .
dan..
).
Simbol pipa |
digunakan untuk menyalurkan output dari ls
perintah ke grep
( utilitas pencarian teks-baris perintah ).
The -v
bendera mengarahkan grep
untuk menemukan dan mengembalikan semua nama file tidak termasuk demo-app.zip
.
Daftar file itu ditambahkan ke baris perintah kami sebagai argumen sumber ke perintah pindah mv
. Argumen target adalah jalur ke direktori baru yang dilewati untuk mkdir
menggunakan referensi $_
dan menggunakan keluaran echo
.