03-08-2001
use test
example:
Perform a mkdir if a directory does not exist:
test ! -d tempdir && mkdir tempdir
for i in *
do
if test -d "$i"
Directory processing commands......
fi
done
it is commonly used with if while do etc. in shell scripts.
-r filename True if filename exists and is readable
-w filename True if filename exists and is writable
-x filename True if filename exists and is executable
-f filename True if filename exists and is a regular file
-d filename True if filename exists and is a directory
-h filename True if filename exists and is a symbolic link.
...........
test commands returns a status of 0(true) or 1 (false) depending on the evaluation of the conditional expression, which can be unary or binary. there is a long list of expression available; check the man page for more info
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
I run the following command in some of my folders... and ended up with a huge mess!!
find . -type f -exec perl -e 's/blabla/zzzxxxx/gi' -p -i.bak {} \;
I had to kill the process and later when I checked with one of my folders..
ls
vaditerm.dt.bak
vaditerm.dt.bak.bak... (2 Replies)
Discussion started by: sskb
2 Replies
2. Shell Programming and Scripting
Problem:
It will not advance to the next user in the list. It always dies right after it sends the 2/2 files from the first users dir.
$USERLIST="/export/home/mxdooley/perl_ftp/userlist";
$USER_DIR="/export/home/mxdooley/perl_ftp/homes";... (2 Replies)
Discussion started by: Optimus_P
2 Replies
3. Shell Programming and Scripting
I wrote a shell script (AIX) to extract the file "/rep1/toto" from all the hosts referred in a list and send them to one local directory named ~/$host-$file with the hostname as prefix
rcp -p user@host:/rep1/$file ~/$host-$file
where file = toto ==> it works !
I would do the same thing... (6 Replies)
Discussion started by: Nicol
6 Replies
4. UNIX for Advanced & Expert Users
In the ls command, -t option and -R option dont work simultaneously.
ls -t ---> lists the files with sorting based on file date
ls -R ---> lists the files recursively.
How to make utilize both in the same command.?
I want to sort the recursive files listing.. (1 Reply)
Discussion started by: fermisoft
1 Replies
5. Cybersecurity
Hello,
I need to transfer files from Serve1 to Server2. Previously I was using scp command. Now I have to use sftp (due to audit issues). The problem with sftp is (atleast to my level of knowledge) we cannot transfer dirs (and files within that dir).
Is there a way to solve this? Looks like... (1 Reply)
Discussion started by: MohanTJ
1 Replies
6. Shell Programming and Scripting
Over the past few weeks, I saw a couple of threads requesting recursive ftp:
Copying files between 2 Unix server
ftp from NT to UNIX
I decided to try to write a script to accommodate these requests. The result is HardFeed. Here are a few examples of what it can do.
HardFeed ftpserver... (52 Replies)
Discussion started by: Perderabo
52 Replies
7. UNIX for Dummies Questions & Answers
Hi all,
I need to count the number of lines in all the files under a directory (several levels deep). I am feeling extremely dumb, but I don't know how to do that. Needless to say, I am not a shell script wiz... Any advice?
thanks in advance! (13 Replies)
Discussion started by: bimba17
13 Replies
8. UNIX for Dummies Questions & Answers
Is there anyway that I can change permissions on a directory and all its sub-directories and files using one single "chmod" command?? (5 Replies)
Discussion started by: the_red_dove
5 Replies
9. UNIX for Dummies Questions & Answers
Could someone help me in recursive search and ftp'ing the files to remote server?
The host machine will have
/dir1/dira/list_of_files1
/dir1/dirb/list_of_files2
/dir1/dirc/list_of_files3
.
.
.
so., I need to search from dir1 recursively (only one level down) and find all the files that... (1 Reply)
Discussion started by: brahmi
1 Replies
10. OS X (Apple)
before posting, I have tried to find my answer elsewhere. no luck.
I need to find a file buried in a folder somewhere.
Master folder has 10 sub folders.
each sub folder has folders too.
I found this but it does nothing
I am on Mac and use Applescript.
do shell script "find... (2 Replies)
Discussion started by: sbrady
2 Replies
test(1sh5) test(1sh5)
Name
test - condition evaluation command
Syntax
test expr
[ expr ]
Description
The command evaluates the expression expr. If the value of expr is true, the command returns a zero exit status; otherwise, it returns a
nonzero exit status. The command also returns a nonzero exit status if no arguments are specified. The following primitives are used to
construct expr:
-r file True if file exists and is readable.
-w file True if file exists and is writable.
-x file True if file exists and is executable.
-f file True if file exists and is a regular file.
-d file True if file exists and is a directory.
-c file True if file exists and is a character special file.
-b file True if file exists and is a block special file.
-p file True if file exists and is a named pipe (fifo).
-u file True if file exists and its set-user-ID bit is set.
-g file True if file exists and its set-group-ID bit is set.
-k file True if file exists and its sticky bit is set.
-s file True if file exists and has a size greater than zero.
-t [ fildes ] True if the open file whose file descriptor number is fildes (1 by default) is associated with a terminal device.
-z s1 True if the length of string s1 is zero.
-n s1 True if the length of the string s1 is non-zero.
s1 = s2 True if strings s1 and s2 are identical.
s1 != s2 True if strings s1 and s2 are not identical.
s1 True if s1 is not the null string.
n1 -eq n2 True if the integers n1 and n2 are algebraically equal. Any of the comparisons -ne, -gt, -ge, -lt, and -le may be used in
place of -eq.
These primitives can be combined with the following operators:
! unary negation operator.
-a binary and operator.
-o binary or operator (-a has higher precedence than -o).
( expr ) parentheses for grouping.
Note that all the operators and flags are separate arguments to the command. Note also that parentheses are meaningful to the Shell and
must be escaped. In the form of the command that uses square brackets ([]), instead of the word test, the brackets must be delimited by
blanks.
See Also
find(1), sh5(1), test(1)
test(1sh5)