/usr/bin/silofile is in libsilo-bin 4.8-11.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | #!/bin/sh
# Copyright (c) 1994 - 2010, Lawrence Livermore National Security, LLC.
# LLNL-CODE-425250.
# All rights reserved.
#
# This file is part of Silo. For details, see silo.llnl.gov.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the disclaimer below.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the disclaimer (as noted
# below) in the documentation and/or other materials provided with
# the distribution.
# * Neither the name of the LLNS/LLNL nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL LAWRENCE
# LIVERMORE NATIONAL SECURITY, LLC, THE U.S. DEPARTMENT OF ENERGY OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# This work was produced at Lawrence Livermore National Laboratory under
# Contract No. DE-AC52-07NA27344 with the DOE. Neither the United
# States Government nor Lawrence Livermore National Security, LLC nor
# any of their employees, makes any warranty, express or implied, or
# assumes any liability or responsibility for the accuracy,
# completeness, or usefulness of any information, apparatus, product, or
# process disclosed, or represents that its use would not infringe
# privately-owned rights. Any reference herein to any specific
# commercial products, process, or services by trade name, trademark,
# manufacturer or otherwise does not necessarily constitute or imply its
# endorsement, recommendation, or favoring by the United States
# Government or Lawrence Livermore National Security, LLC. The views and
# opinions of authors expressed herein do not necessarily state or
# reflect those of the United States Government or Lawrence Livermore
# National Security, LLC, and shall not be used for advertising or
# product endorsement purposes.
#
# Modifications:
#
# Mark C. Miller, Wed Jul 14 21:04:10 PDT 2010
# Completely re-wrote to use od instead of file command as that
# has proven more reliable.
#
#
# Use octal dump (od) command to examine first few bytes of file.
# If do not find expected bytes of any of the formats we'd like
# to identify here, fall back to using the good ole' file command.
#
unknownFiles=
for f in $*; do
headerBytes=$(od -c -N 10 $f)
if test -n "$(echo $headerBytes | tr -d ' ' | grep '<<PDB:')"; then
echo "$f: Portable Database (PDB) data"
elif test -n "$(echo $headerBytes | tr -d ' \\' | grep 'HDFrn032')"; then
echo "$f: Hierarchical Data Format version 5 (HDF5) data"
else
headerBytes=$(od -t x1 -N 4 $f)
if test -n "$(echo $headerBytes | grep '0000000 0e 03 13 01')"; then
echo "$f: Hierarchical Data Format version 4 (HDF4) data"
else
unknownFiles="$unknownFiles $f"
fi
fi
done
#
# If we have any unknown files, use the ordinary file command on them.
#
if test -n "$unknownFiles"; then
file $unknownFiles
fi
|