The command file determines the type of a file or a
list of files by checking /etc/magic
.
tester@linux:~> file /usr/bin/file /usr/bin/file: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), \ for GNU/Linux 2.2.5, dynamically linked (uses shared libs), stripped
The parameter -f
specifies a file with a list of filenames to examine. The
list
-z
allows file to look inside
compressed files:
tester@linux:~> file /usr/share/man/man1/file.1.gz usr/share/man/man1/file.1.gz: gzip compressed data, from Unix, max compression tester@linux:~> file -z /usr/share/man/man1/file.1.gz /usr/share/man/man1/file.1.gz: ASCII troff or preprocessor input text \ (gzip compressed data, from Unix, max compression)
The command mount shows which file system (device and type) is mounted at which mount point:
tester@linux:~> mount /dev/hda3 on / type reiserfs (rw,acl,user_xattr) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) udev on /dev type tmpfs (rw) devpts on /dev/pts type devpts (rw,mode=0620,gid=5) /dev/hda1 on /boot type ext2 (rw,acl,user_xattr) /dev/hda4 on /local type reiserfs (rw,acl,user_xattr) /dev/fd0 on /media/floppy type subfs (rw,nosuid,nodev,noatime,fs=floppyfss,p
Obtain information about total usage of the file systems with the command
df. The parameter -h
(or
--human-readable
) transforms the output into a form
understandable for common users.
tester@linux:~> df -h Filesystem Size Used Avail Use% Mounted on /dev/hda3 11G 3.2G 6.9G 32% / udev 252M 104K 252M 1% /dev /dev/hda1 16M 6.6M 7.8M 46% /boot /dev/hda4 27G 34M 27G 1% /local
Display the total size of all the files in a given directory and its
subdirectories with the command du. The parameter
-s
suppresses the output of detailed information.
-h
again transforms the data into a human-readable form:
tester@linux:~> du -sh /local 1.7M /local
Read the content of binaries with the readelf utility. This even works with ELF files that were built for other hardware architectures:
tester@linux:~> readelf --file-header /bin/ls ELF Header: Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 Class: ELF32 Data: 2's complement, little endian Version: 1 (current) OS/ABI: UNIX - System V ABI Version: 0 Type: EXEC (Executable file) Machine: Intel 80386 Version: 0x1 Entry point address: 0x8049b60 Start of program headers: 52 (bytes into file) Start of section headers: 81112 (bytes into file) Flags: 0x0 Size of this header: 52 (bytes) Size of program headers: 32 (bytes) Number of program headers: 9 Size of section headers: 40 (bytes) Number of section headers: 30 Section header string table index: 29
The command stat displays file properties:
tester@linux:~> stat /etc/profile File: `/etc/profile' Size: 7930 Blocks: 16 IO Block: 4096 regular file Device: 303h/771d Inode: 40657 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2006-01-06 16:45:43.000000000 +0100 Modify: 2005-11-21 14:54:35.000000000 +0100 Change: 2005-12-19 09:51:04.000000000 +0100
The parameter --filesystem
produces details of the
properties of the file system in which the specified file is located:
tester@linux:~> stat /etc/profile --filesystem File: "/etc/profile" ID: 0 Namelen: 255 Type: reiserfs Block size: 4096 Fundamental block size: 4096 Blocks: Total: 2622526 Free: 1809771 Available: 1809771 Inodes: Total: 0 Free: 0