02-20-2017
Hi,
Taking them in turn:
mkdir test and mkdir ./test
In practical terms, there isn't likely to be much difference between them, and they are generally going to be interchangebale in use. The key to understanding what they do though (and why they both do the same thing) is understanding the meaning of './' specifically.
In UNIX-style nomenclature, the '.' character represents your current directory. The '/' symbol is the path separator, and is used to separate one directory in a path from another. All absolute paths starting at the root of the filesystem tree begin with '/'.
So, in the first instance, mkdir test simpy creates a directory called 'test' in your current working directory, without specifying a path. In effect, this works out to be identical to specificying the current working directory in your path by doing mkdir ./test.
In both cases, you're going to end up with a sub-directory of your current working directory (that is, the directory you are in when you run the 'mkdir' command) called 'test'. Most commands (mkdir amongst them) are generally going to assume if you don't specify a path you must be referring to your current directory, which is why in this one single instance you can use both these forms interchangeably.
Moving on to your second question:
if ( -e /test ) then and if ( -e ./test ) then
Here there's a big difference in meaning, and these two tests will do entirely different things. The path '/test' refers to a file or directory beneath the root of the filesystem (that is, the very top of the filesystem tree) called 'test'. Whereas './test' refers to a file or directory beneath your current working directory called 'test'.
So unless you happen to have / as your current working directory, the meaning of these will be very different. '/test' will always refer to something called 'test' underneath the root directory, no matter where you happen to be yourself in the file system tree at the time. Whereas './test' will always refer to something called 'test' underneath whatever directory you happen to be in at the time.
Hope this helps.
10 More Discussions You Might Find Interesting
1. Linux
I'm sitting here late at night, reading linux from scratch, and I come to this part:
http://lfs.osuosl.org/lfs/view/stable/chapter06/creatingdirs.html
my question to you, the all knowing unix.com'ers is this: what's the difference between using the install command as they do, and using the... (1 Reply)
Discussion started by: thmnetwork
1 Replies
2. Shell Programming and Scripting
Hi,
I look for a script to create 150 directories :
d000
d001
d002
...
...
d149
would you help me please ?
I think it would be
for i
mkdir d$i
Many thanks.
PS :
#uname -a
AIX fserver 3 5 0050691A4C00 (2 Replies)
Discussion started by: big123456
2 Replies
3. UNIX for Advanced & Expert Users
Is there ant way to increase max number of folders in the directory from the 32766:
Problem UFS:
shell>mkdir mmm
mkdir: mmm: Too many links
But there are no links, just folders.
shell>ls | wc -l
32766 (3 Replies)
Discussion started by: mirusnet
3 Replies
4. Shell Programming and Scripting
I am having trouble using cp and mkdir commands on a small script. The problem is I have spaces what I am trying to mkdir and then copy. Any suggestions on how I can solve this problem? I've tried searching online.
while read linefile
do
echo mkdir -p $CPP$linefile | cut -d / -f 1-5,8-12
... (10 Replies)
Discussion started by: imagiro1
10 Replies
5. Shell Programming and Scripting
Hi, please help me with this small script
#!/bin/sh
curdir=`pwd`
n20=$curdir'/n20/'
msat=$curdir'/n20/msat/'
if
then
mkdir $n20
fi
if
then
mkdir $msat
fi
for a in 30 40 50 60 70 80
do (4 Replies)
Discussion started by: Dark2Bright
4 Replies
6. Shell Programming and Scripting
Dear,
I have the following script:
maak_backup ()
{
echo 'Maken van tijdelijke bestanden, even geduld aub.'
for i in /home/yannick/* ;
do
cp -r $i $i.bac
done
if ;
then
echo 'Backup map = OK!'
echo 'Bezig met kopiëren, even geduld... (9 Replies)
Discussion started by: yadeki
9 Replies
7. Linux
Hi all, i am new to Linux and need some help.
I used the command: mkdir super
Directory super is created
When i try to change to this directory using: cd /super
I get: bash: cd: /super: No such file or directory
when i use: rm super
I get: rm: cannot remove 'super': Is a directory
What... (5 Replies)
Discussion started by: Deside
5 Replies
8. Homework & Coursework Questions
Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted!
1. The problem statement, all variables and given/known data:
Do the procedure, which if there are 5 parameters then it creates 4 directories with names of 4 parameters, in... (2 Replies)
Discussion started by: bolones
2 Replies
9. UNIX for Dummies Questions & Answers
Howdy,
Puttering around in unix, and read this in the mkdir man page:
"The mkdir utility creates the directories named as operands..."
What does this mean, i.e. as operands?
Many thanks,
DN (2 Replies)
Discussion started by: danuke
2 Replies
10. UNIX for Dummies Questions & Answers
Hi, I used "mkdir job{0001..10}" do get directories. Now I want to create directories with a variable, for exemple "mkdir job{0001..$a}". When a=5 I get the directory "job{0001..5}". What have i to change to get job0001,...,job0005 :/
Thx for ur help :) (1 Reply)
Discussion started by: E_taks
1 Replies
LEARN ABOUT OSF1
shtrashcan
mktrashcan(1) General Commands Manual mktrashcan(1)
NAME
mktrashcan, rmtrashcan, shtrashcan - Attaches, detaches, or shows a trashcan directory
SYNOPSIS
/usr/sbin/mktrashcan trashcan directory...
/usr/sbin/rmtrashcan directory...
/usr/sbin/shtrashcan directory...
OPERANDS
Specifies the directory that contains files that were deleted from attached directories. Whenever you delete a file in the specified
directory, the file system automatically moves the file to the trashcan directory. Specifies the directory that you attach to a trashcan
directory.
DESCRIPTION
The trashcan utilities (mktrashcan and rmtrashcan) enable you to attach or detach an existing directory, which you specify as a trashcan
directory, to any number of directories within the same fileset.
A trashcan directory stores the files that are deleted with the unlink system call. For instance, you can use the mktrashcan utility to
attach a trashcan directory called /usr/trashcan to one or more directories; thereafter, when you delete a file from one of the attached
directories, the file system moves the file to the /usr/trashcan directory. Note that when more than one directory shares attachment to a
trashcan directory, files with the same file name can overwrite each other in the trashcan directory.
If you mistakenly delete a file, use the mv command to return the file from the /usr/trashcan directory to its original directory.
When you enter shtrashcan at the system prompt, the system shows the trashcan directory, if one exists, for the directory you specified.
It is important that trashcan directories have correct access permissions. If the permissions are too restrictive, then it may be impossi-
ble to remove files from the directories that are attached to the trashcan directory. In general, all users and groups that expect to use
the trashcan directory need write permission to the directory. If unexpected "permission denied" errors occur when deleting files that are
in a directory attached to a trashcan directory, use the chmod command to change the permissions on the trashcan directory.
RESTRICTIONS
The directory and trashcan directories must be in the same fileset; however, you can attach the trashcan directory to any directory within
the fileset.
EXAMPLES
The following example creates and attaches a trashcan directory, /usr/trashcan, to two directories, /usr/ray and /usr/projects/sql/test,
which are in the same fileset. The chmod command adds write permission for all users and groups on the new trashcan directory. % mkdir
/usr/trashcan % chmod a+w /usr/trashcan % mktrashcan /usr/trashcan /usr/ray /usr/projects/sql/test To attach the trashcan directory,
/usr/trashcan, to all subdirectories in the /usr directory, enter: % mktrashcan /usr/trashcan /usr/*
New subdirectories that you add beneath the /usr directory are not attached to the trashcan directory until you attach them. Also,
the mktrashcan utility distinguishes between directories and files, attaching only directories to the trashcan directory.
Note that an attached directory produces an EDUPLICATE_DIRS (-1165) error when /usr/trashcan is itself in the directory path you
attach to (as in the previous example). You can ignore this error message.
SEE ALSO
advfs(4), mkfset(8), showfsets(8)
mktrashcan(1)