Bas komutlarında noktanın önemi nedir ve yıldız işaretinden farkı nedir?


11

Nokta bash'ın önemini ve yıldız işaretinden nasıl farklı olduğunu anlamaya çalışıyorum. Birisi lütfen ayrıntı verebilir mi? Örneğin, cp -ar /foo/. /foo2/ve arasındaki fark nedircp -pr /foo/* /foo2/

Yanıtlar:


12

Dot ( .) sadece bir .dizinin içindeki dizinin kendisiyle aynı olan dizindir ( ls -la /foobunu size gösterecektir). Kopyalamak Yani foo/.başka bir yerde, etkili altındaki tüm ağacı kopya fookopyalamadan foo(eğer içine kopyalayarak ediyoruz kendisini foo2/.hangi aynıdır foo2).

/foo/*kabuk tarafından gizli olmayan dosyalar ve dizinler listesine genişletilir /foo, böylece dotfiles / dotdirs dışında aynı dizin yapısını da /fooiçine /foo2kopyalar. Etkili bir şekilde, cp(potansiyel olarak) birçok argüman alacaksınız. Liste çok büyükse, yürütme cpişleminin başarısız olmasına bile neden olabilir .


Üzgünüm ama kafam karışıyor. Yani, doğa tarafından, yıldız komutu komutu tekrar eder mi? Başka bir deyişle cp -r /foo/*, aynı şey cp /foo/* nedir?
Mike B

5
@MikeB, hayır, kabuk yalnızca / foo dizinindeki dosyaların listesini genişletir. Cp'nin davranışını değiştirmez. Neler olup bittiğini görmek için set -xveya echo cp -pr /foo/* /foo2düğmesini kullanın . Joker karakterleri genişleten kabuk olduğunu anlamak önemlidir. cpyıldızı görmüyor.
Stéphane Chazelas

Peki buna ne dersin? chmod 755 -R.
versm
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.