Je možné vytvořit ls odlišit spustitelné skripty od skutečných zkompilovaných binárních souborů?
 Oprávnění jsou většinou stejná (+x ) a pomocí ls -F získáte příponu hvězdičky (* ) pro oba, takže je těžké je rozlišit. Mám skript pro nastavení barev ls , ale spoléhá na to, zda je soubor spustitelný nebo ne, takže se zobrazují stejně:
BG='01;32'  # green
EX="ex=$BG" # file with execute permission
Nechci se spoléhat na příponu, protože tolik z těchto souborů ji nemá.
 Chci to, takže když uvidím nějakou bizarní chybovou zprávu a pomyslím si:„Jaký kód to způsobil?“, vím, zda je bezpečné cat nebo ne soubor.
 Pokud neexistuje žádné standardní řešení, co takhle analyzovat výstup file , v jedné společné funkci a vložení nějaké rozlišovací značky? Nebo by to bylo příliš pomalé pro ls ?
Přijatá odpověď:
 Chcete-li rozlišovat mezi binárními soubory a skripty, musíte se podívat na obsah souboru. ls to neudělá, dívá se pouze na názvy souborů a metadata (typ, oprávnění atd.).
 Zde je hrubý analyzátor pro file že zabarvuje skripty a binární soubory odlišně. Funguje jako ls -d; přidání metadat by vyžadovalo záplatovací úlohu, která vyžaduje přímější přístup (např. v Perlu nebo Pythonu); použijte lsx somedir/* pro výpis obsahu adresáře. Předpokládá se, že názvy souborů neobsahují nové řádky ani dvojtečky (můžete změnit : oddělovač pro nějaký jiný řetězec s -F možnost file ).
lsx () { file -iN -- "[e-mail chráněn]" | while IFS=read -r řádek; do name=${line%%:*}; type=${line#*:} color=0 case $type in application/x-executable*) color='32';; text/x-shellscript*) color='01;32';; aplikace/*zip*) color='31';; esac printf
        
        
        
               
        
        
            Zástupné znaky:Jak vypsat pouze soubory končící na `.txt` bez použití znaku tečka?         
            Zavření standardního výstupu (>&-)?    
        
        
    
    
        
            Linux