parametre biçimini veren cygwin'deki komutu bul doğru değil


14

Windows makinemde cygwin kullanıyorum. Ben bir bulmaya çalışıyorum ve parametre biçimi doğru değil veriyor. Neden?

$ ls
bootstrap.jar
catalina-tasks.xml
catalina.bat
catalina.sh
commons-daemon-native.tar.gz
commons-daemon.jar
cpappend.bat
digest.bat
digest.sh
setclasspath.bat
setclasspath.sh
shutdown.bat
shutdown.sh
startup.bat
startup.sh
tomcat-juli.jar
tomcat-native.tar.gz
tool-wrapper.bat
tool-wrapper.sh
version.bat
version.sh

$ find . -name "version.sh"
FIND: Parameter format not correct
  • Cygwin'i kurarken herhangi bir şey kurmalı mıyım yoksa yanlış bir şey mi yapıyorum?
find  cygwin 

Yanıtlar:


19

Sizin PATHkötü. Cygwin dizinlerinden önce Windows sistem dizinleri vardır veya belki de Cygwin dizinleri yoktur. Bu ileti, Windows komutundan gelir find(adını FINDbüyük harfle bildirdiği için bir ipucudur).

Bir Cygwin kabuğunu başlattığınızda, genellikle PATH. Bir giriş kabuğu başlatmanızı öneririm (doğru hatırlıyorsam, varsayılan Cygwin sistem menüsü girişlerinin yaptığı şey budur). Cygwin'iniz , Cygwin olmayan herhangi bir dizine PATHsahip olmalı ve (en azından) önde olmalıdır ./usr/local/bin/usr/bin/bin


1
Evet, muhtemelen öyle. Bu hata, kullandığınız bulmanın cygwin'in değil Windows'un find komutu olmasıdır.
Yanick Girouard

Veya tipi /usr/bin/findyerinefind

Yolda yaşadım /usr/bin, sanırım kabuk ilk findsistem olan PATY, $ PATH bulunan ilk kullanır . Onu kaldırmak üzereydim (çünkü yine de ihtiyacım yoktu) , ama bazı rasgele sistem komut dosyaları sadece bunu bekleyebilir find. Yani, bunu doğru şekilde düzeltmek alias find="/usr/bin/find"içine ~/.bashrc (veya kullandığınız kabuğa) bir takma ad yazmaktır .
Hi-Angel

1

Bulma yüklü mü? "Hangi bulgu" ne döner? Windows'un, kendi bulmasının mia olması durumunda Cygwin'in kullanacağı yerleşik bir komut satırı olduğunu unutmayın.


1

Gilles'in cevabı, findkomutun Windows sürümünün cygwin sürümünden önce gelmesi ve böylece çağrılması doğrudur .

Bununla birlikte, Cygwin'i öne koymak, windows findkomutunu kullanan herhangi bir toplu iş dosyasının artık gerçekten findistediğiniz şey olmayabilecek cygwin komutunu çağıracağı anlamına gelecektir .

Her ikisinin de çalışmasının en simbiyotik yolu, bence, aşağıdakileri yapmaktır:

  1. Cygwin findkomutunu bulun ve yeniden adlandırın / kopyalayın lfind.exe(veya Windows PATH'da olmayan başka bir ad)
  2. Sizin de ~/.bashrcdosyaya satır ekleyinalias find=lfind

Bu şekilde, findcygwin terminalinden çalıştırdığınızda cygwin sürümünü kullanırsınız, ancak toplu iş dosyaları windows sürümünü kullanır.

Not: PATH'inizde hala cygwin bin dizinine ihtiyacınız olacak, ancak şimdi Windows sistem dizininden daha ileriye gidebilir.


0

Cygwin'i kurarken, istemediğiniz sürece olası tüm paketleri yüklemez. İstenen bir paket eklemek için, açıklama bakmak Burada Süper Kullanıcı üzerinde.

Veya sadece aşağıdaki işlemleri gerçekleştirin:

  1. Kurulum'u başlatın, bir ayna seçin ve paketler ekranına gidin
  2. Üstteki radyo düğmesi listesinden "Tut" u seçin
  3. İlgili grup altında istediğiniz paketi seçin
  4. "Devam" ı seçin

0

İşte yerel win32 portları olarak GNU-utils . Çalıştırmak için cygwin'e ihtiyaç duymazlar ve grep, sed, awk, find, less, cat, tac ve çok daha fazlasını içeren bir kabuk (sh.exe) ile birlikte gelirler.

Windows yolu ile ilgili sorun devam edecek, ancak bulmayı daha kolay erişilebilir hale getirmek için gfind(gnu-find) veya olarak yeniden adlandırıp searchPATH'nize coreutils dizinini ekleyebilirsiniz.

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.