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 | fileher 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]
fileKomutun 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ınfilekomutla işlenmesini istediğinizi belirtir . ... Öyleyse neden sadece yapmıyorsunuz ki:file *her dosya için bir satır ile cevap verecektir, klasör.