Komut satırı hakkında çalışıyorum ve |
(pipeline) çıktısını bir komuttan diğerinin girişine yönlendirmek anlamına geldiğini öğrendim . Peki neden komut ls | file
çalışmıyor?
file
giriş, gibi daha fazla dosya adından biridir file filename1 filename2
ls
çıktı, bir klasördeki dizinlerin ve dosyaların bir listesidir, bu yüzden ls | file
her dosyanın dosya türünü bir klasörde göstermesi gerektiğini düşündüm .
Ancak kullandığımda çıktı:
Usage: file [-bcEhikLlNnprsvz0] [--apple] [--mime-encoding] [--mime-type]
[-e testname] [-F separator] [-f namefile] [-m magicfiles] file ...
file -C [-m magicfiles]
file [--help]
file
Komutun kullanımında bazı hatalar olduğu için
file *
en akıllı yol, sadece ls
çıktı kullanmanın neden işe yaramadığını merak ediyordum . Şüphe temizlendi :)
ls
genellikle kötü bir fikirdir.
ls
, geçerli dizindeki tüm dosyalarınfile
komutla işlenmesini istediğinizi belirtir . ... Öyleyse neden sadece yapmıyorsunuz ki:file *
her dosya için bir satır ile cevap verecektir, klasör.