Linux shell check directory

Bash Shell: Check File Exists or Not

H ow do I test existence of a text file in bash running under Unix like operating systems?

You need to use the test command to check file types and compare values. The same command can be used to see if a file exist of not. The syntax is as follows:

The following command will tell if a text file called /etc/hosts exists or not using bash conditional execution :

  • No ads and tracking
  • In-depth guides for developers and sysadmins at Opensourceflare✨
  • Join my Patreon to support independent content creators and start reading latest guides:
    • How to set up Redis sentinel cluster on Ubuntu or Debian Linux
    • How To Set Up SSH Keys With YubiKey as two-factor authentication (U2F/FIDO2)
    • How to set up Mariadb Galera cluster on Ubuntu or Debian Linux
    • A podman tutorial for beginners – part I (run Linux containers without Docker and in daemonless mode)
    • How to protect Linux against rogue USB devices using USBGuard

Join Patreon

The same code can be converted to use with if..else..fi which allows to make choice based on the success or failure of a test command:

File test operators

The following operators returns true if file exists:

(Fig.01: File test operators taken from bash man page)
The syntax is same (see File operators (attributes) comparisons for more info):

🐧 Get the latest tutorials on Linux, Open Source & DevOps via

Category List of Unix and Linux commands
Documentation help • mandb • man • pinfo
Disk space analyzers df • duf • ncdu • pydf
File Management cat • cp • less • mkdir • more • tree
Firewall Alpine Awall • CentOS 8 • OpenSUSE • RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04
Linux Desktop Apps Skype • Spotify • VLC 3
Modern utilities bat • exa
Network Utilities NetHogs • dig • host • ip • nmap
OpenVPN CentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04
Package Manager apk • apt
Processes Management bg • chroot • cron • disown • fg • glances • gtop • jobs • killall • kill • pidof • pstree • pwdx • time • vtop
Searching ag • grep • whereis • which
Shell builtins compgen • echo • printf
Text processing cut • rev
User Information groups • id • lastcomm • last • lid/libuser-lid • logname • members • users • whoami • who • w
WireGuard VPN Alpine • CentOS 8 • Debian 10 • Firewall • Ubuntu 20.04

Comments on this entry are closed.

Thank you for the trick!

thanks much for that useful information

i made a linux script which receives as first argument a path to a directory. I don’t know the path. And i want to check if “file.txt” exists at that certain path . For example :

if [ -e $1/file.txt ];then echo HAHA fi

if you use -f with *.sock files it always says “the file does not exist”. when I use -e it worked 🙂

What if I want to test for the existence of any files with a particular filename extension? Is there a simple way to do that? I’ve trying to use the return status of the ls command but I seem to be getting the syntax a bit wrong.

You can use wildcard. Ex:
[ -e *”.extension” ]

(don’t forget to have a space character before the operator and before the closing branch, it took hours of my time to recognize this 😐 )

Can I mix the operator?
like:
if [-xw filename]
(Checking the existence of the file that executable and writable)

i want to write script to copy a some of the files inside directory to specified location(for example i have one directory, this containes 1000 image file. then i need pick only 100 image file from 1000 image file. also i have a list of images which i need to copy (i made one file).

can anyone help on this(please forword to my mail)

in my script I have[ $FILE ! = “”] ..what does it mean…

FILE has lot ma y rows extracted file names from database.

Источник

Linux Shell Commands

The Shell is the command interpreter on Linux systems. This document intoduces some of the basic features of the Shell and lists many of the commands or programs available on the Linux computers in Cardiff School of Computer Science & Informatics.

The Shell

The Linux command interpreter or shell is the program users interact with in a terminal emulation window. The terminal emulation window can be one in the workstation’s Graphical User Interface mate-terminal on Linux. Alternatively, it can be an application such as SSH secure shell client or PuTTY on a Windows PC that’s logged into Linux over the network.

The shell used in the School of Computer Science & Informatics is bash Bourne Again Shell. There are other shells available such as the Bourne Shell, the C-Shell and the TC-Shell, and you can choose to use a different shell if you prefer. They all have similar characteristics but each has its own particular features. This document assumes you are using bash .

Bash has the following features:


    A command prompt which may be configured by the user. The default prompt is a dollar symbol preceded by «bash» and the bash program’s version number.

/bin containing the following.

/bin/countc
bash-2.05$ countc
45

516 ls -lrt
517 ps -ef
518 pdflatex myfile.tex

See the manual page on bash for more details (type man bash ).

Bash has an additional mechanism which allows you to recall and edit previous commands using the keyboard up-arrow key. If you press up-arrow, the last command re-appears on the terminal. Press up-arrow again to get earlier commands. To rerun the command, press RETURN . To amend the command before rerunning it, use the delete key to remove characters from the end or use the back-arrow key to reposition the cursor to delete or insert characters within the command.

Shell Commands

Here is a summary of some of the commands available. For more details refer to the manual page of each command. You can see these on-line by using the man command. Just type man followed by the name of the command you want to see.

Logging out

Command Description
logout log out of a Linux terminal

Note, on a Linux workstation you will need to exit the Desktop Environment instead.

Files and Directories

These commands allow you to create directories and handle files.

Command Description
cat concatenate and print data
lpr spool file for line printing
cd change current directory
lprm, cancel remove jobs from line printer queue
chgrp change file group
ls list and generate statistics for files
chmod change file mode
mkdir make a new directory
cp copy file data
more, page display file data at your terminal
Command Description
file determine file type
mv move or rename files
find find files
pwd print working directory
grep search file for regular expression
rm, rmdir remove (unlink) files or directories
head give first few lines
tail print last lines from file
just text justification program
touch update access and modification times of a file
lpq spool queue examination program

File Editors

Editors are used to create and amend files.

Command Description
emacs GNU project Emacs
xemacs emacs with mouse action
ex, edit line editor
Command Description
pico easy text editor for vdus
pluma Mate GUI text editor
gedit GNOME text editor
vi, vim standard text editor

Vi , pico and emacs are screen-based editors which run on a vdu or in a workstations terminal emulation window; pluma , gedit and xemacs are graphical user interface (GUI) based editors with cut and paste and mouse-controlled cursor positioning.

Manipulating data

The contents of files can be compared and altered with the following commands.

Command Description
awk pattern scanning and processing language
perl data manipulation language
cmp compare the contents of two files
paste merge file data
comm compare sorted data
sed stream text editor
cut cut out selected fields of each line of a file
sort sort file data
diff differential file comparator
Command Description
split split file into smaller files
expand, unexpand expand tabs to spaces, and vice versa
tr translate characters
gawk pattern scanning and processing language
uniq report repeated lines in a file
join join files on some common field
look find lines in sorted data
wc count words, lines, and characters

Compressed files

Files may be compressed to save space. Compressed files can be created and examined.

Command Description
gzip compress files
zmore file perusal filter for crt viewing of compressed text
uncompress uncompress files
Command Description
zcat cat a compressed file
gunzip uncompress gzipped files
zcmp, zdiff compare compressed files

Information

Manuals and documentation are available on-line. Go to our web site www.cs.cf.ac.uk/systems for web-based documentation. The following Shell commands give information.

Command Description
apropos locate commands by keyword lookup
man displays manual pages online
Command Description
info displays command information pages online
yelp GNOME help viewer

Status

These commands list or alter information about the system.

Command Description
ps print process status statistics
date print the date
quota -v display disk usage and limits
reset reset terminal mode
du print amount of disk usage
script keep script of terminal session
stty set terminal options
groups show group memberships
time time a command
homequota show quota and file usage
iostat report I/O statistics
tty print current terminal name
Command Description
kill send a signal to a process
uptime display system status
last show last logins of users
users print names of logged in users
lun list user names or login ID
vmstat report virtual memory statistics
netstat show network status
w show what logged in users are doing
who list logged in users
printenv display value of a shell variable

Printing

Files can be printed using shell commands, using the GUI print manager, or direct from some applications.

You must specify a printer by name. Printers are called

Printer Name Location
tl1_lw Teaching Lab 1 (C/2.04) laser printer
tl3_lw Teaching Lab 3 (C/2.08) laser printer
Printer Name Location
tl2_lw Teaching Lab 2 (C/2.05) laser printer
tl4_lw Teaching Lab 4 (C/2.10) laser printer

Most commands which can be used to print files, expect the printer name to be given following a -P argument.

Files may be sent to the printers as simple text files or they may be processed in various ways for the laser printers.

Command Description
lpr -P printer send a file to a printer
dvips -P printer postprocess TeX file into Postscript and print on laser printer
a2ps -P printer format text file in PostScript and print on laser printer

Messages between Users

The Linux systems support on-screen messages to other users and world-wide electronic mail.

Command Description
write send a message to another local user
wall send a message to all local users
Command Description
pine vdu-based mail utility
mail simple send or read mail program
thunderbird GUI mail handling tool on Linux

Networking

The School of Computer Science & Informatics is connected to the JANET Internet Protocol Service (JIPS), the UK Universities’ network.

These commands are used to send and receive files from Campus Linux hosts and from other hosts on JIPS and the Internet, that permit such connections, around the world.

Command Description
ftp file transfer program
tftp trivial file transfer program
sftp secure shell file transfer program
rcp remote file copy
scp secure shell remote file copy
wget non-interactive network downloader
Command Description
telnet make terminal connection to another host
ssh secure shell terminal or command connection
rlogin remote login to a Linux host
rsh remote shell
curl transfer data from a url
firefox web browser
google-chrome web browser

These commands work only where the remote host permits such connections.

Programming

The following programming tools and languages are available.

General
Command Description
make maintain groups of programs
size print program’s sizes
Command Description
nm print program’s name list
strip remove symbol table and relocation bits
Command Description
cb C program beautifier
gcc GNU ANSI C Compiler
Command Description
ctrace C program debugger
indent indent and format C program source
cxref generate C program cross reference
Command Description
g++ GNU C++ Compiler
Command Description
appletviewer JAVA applet viewer
javac JAVA compiler
eclipse Java integrated development environment on Linux
FORTRAN
Command Description
f95 GNU Fortran 95 compiler
Other Languages

(Not available on all systems).

Command Description
bc interactive arithmetic language processor
matlab maths package
gcl GNU Common Lisp
perl general purpose language
Command Description
python object-oriented programming language
squeak smalltalk
php web page embedded language
mathematica symbolic maths package
asp web page embedded language

Text Processing

TeX is a typesetting language used extensively in Linux and other operating systems for producing high-quality printed documents. Another set of programs based on Troff is the standard Linux text formatting family used, for example to format manual pages.

General Commands
Command Description
fmt simple text formatter
evince GNOME PostScript previewer
Command Description
acroread PDF viewer
spell check text for spelling error
aspell interactive spelling checker
Troff
Command Description
eqn mathematical preprocessor for troff
tbl prepare tables for nroff or troff
grap pic preprocessor for drawing graphs
troff text formatting and typesetting language
Command Description
nroff text formatting language
groff GNU troff interface for laserprinting
pic troff preprocessor for drawing pictures
Command Description
tex text formatting and typesetting
latex latex formatter
Command Description
pdflatex latex formatter with PDF output
xdvi dvi previewer
dvips convert a DVI file to POSTSCRIPT

Word Processing

LibreOffice is available on the School’s Linux systems and attempts compatibilty with Microsoft Office.

Command Description
libreoffice start LibreOffice applications

Database Management

MySQL and Oracle are available.

Command Description
sqlplus run the Oracle SQL interpreter
mysql run the mysql SQL interpreter
sqldeveloper Oracle SQL Developer GUI interface
mysql-workbench GUI interface for MySQL

Cardiff University is a member of the Russell Group of Universities
Cardiff University is a registered charity No. 1136855
Copyright © Cardiff University

Источник

Читайте также:  Учебник цифрового века для windows
Оцените статью