Bu , üst dizinin foo.c
bulunduğu yeni dizine taşınacaktır .baz
bar
mv foo.c `mkdir -p ~/bar/baz/ && echo $_`
-p
Seçeneği için mkdir
gerektiği gibi ara dizinleri yaratacaktır.
olmadan-p
Yol önekindeki tüm dizinler zaten var olmalıdır.
Geri dönüşlerin içindeki her şey ``
yürütülür ve çıktı komutunuzun bir parçası olarak satır içinde döndürülür.
Yana mkdir
sadece çıkış, bir şey dönmez echo $_
komutuna eklenecektir.
$_
son argümanı daha önce yürütülen komuta referanslar.
Bu durumda, yeni dizininizin ( ~/bar/baz/
)mkdir
komuta .
Bir hedef vermeden bir arşivin sıkıştırmasını açtım ve geçerli dizim dışındaki tüm dosyaları
demo-app.zip
adlı yeni bir dizine taşımak istedim
demo-app
.
Aşağıdaki satır hile yapar:
mv `ls -A | grep -v demo-app.zip` `mkdir -p demo-app && echo $_`
ls -A
gizli dosyalar dahil tüm dosya adlarını döndürür ( örtük .
ve..
).
Boru sembolü |
, ls
komutun çıktısını grep
( bir komut satırı, düz metin arama yardımcı programı ) borulamak için kullanılır . Bayrak yönlendirir bulup hariç tüm dosya adlarını dönmek için .
Bu dosya listesi, komut satırımıza move komutunun kaynak bağımsız değişkenleri olarak eklenir . Hedef bağımsız değişken, kullanarak ve çıktı kullanılarak başvurulan yeni dizinin yoludur .
-v
grep
demo-app.zip
mv
mkdir
$_
echo