What does two dots before a slash mean? (../)
Each directory has two entries in it at the start, with names .
(a link to itself) and ..
(a link to its parent directory). The exception, of course, is the root directory, where the ..
directory also refers to the root directory.
What does ./ (dot slash) refer to in terms of an HTML file path location?
./
is the the folder that the working file is in:
So in /index.htm
./
is the root directory
but in /css/style.css
./
is the css folder.
This is important to remember because if you move CSS from /index.htm
to /css/style.css
the path will change.
What double back slash followed by two dots means within a path in Visual Studio
The double backslash has no extra meaning or effect. It might come if your project is building a path or filename by using a setting like $(directory_variable)\..\..\..\3rdpartypublic
. If directory_variable
contains the trailing backslash, then you would end up with a double backslash. That does not cause any harm. But if you want to get rid of it, then you just need to change the setting to $(directory_variable)..\..\..\3rdpartypublic
Why do you need ./ (dot-slash) before executable or script name to run it in bash?
Because on Unix, usually, the current directory is not in $PATH
.
When you type a command the shell looks up a list of directories, as specified by the PATH
variable. The current directory is not in that list.
The reason for not having the current directory on that list is security.
Let's say you're root and go into another user's directory and type sl
instead of ls
. If the current directory is in PATH
, the shell will try to execute the sl
program in that directory (since there is no other sl
program). That sl
program might be malicious.
It works with ./
because POSIX specifies that a command name that contain a /
will be used as a filename directly, suppressing a search in $PATH
. You could have used full path for the exact same effect, but ./
is shorter and easier to write.
EDIT
That sl
part was just an example. The directories in PATH
are searched sequentially and when a match is made that program is executed. So, depending on how PATH
looks, typing a normal command may or may not be enough to run the program in the current directory.
What is double dot(..) and single dot(.) in Linux?
They are special name-inode maps which do count as hard-links (they do increase the link-count) though they aren't really hard-links, since, as you said, directories can't have hard-links. Read more here: Hard links and Unix file system nodes (inodes)
What does the dot-slash do to PHP include calls?
./
is the current directory. It is largely the same as just file.php
, but in many cases (this one included) it doesn't check any standard places PHP might look for a file, instead checking only the current directory.
From the PHP documentation (notice the last sentence):
Files for including are first looked for in each include_path entry relative to the current working directory, and then in the directory of current script. E.g. if your include_path is libraries, current working directory is /www/, you included include/a.php and there is include "b.php" in that file, b.php is first looked in /www/libraries/ and then in /www/include/. If filename begins with ./ or ../, it is looked only in the current working directory.
gcc - What does ../ (dot dot slash) mean in a variable in a Makefile?
To automatically create the $(BINDIR)
directory before it is actually needed you must declare it as a prerequisite (dependence) of any target that uses it. But each time its content changes its timestamp also changes. So, declaring it as a regular prerequisite is not the best thing to do because the targets depending on it would be re-built without real reason, just because the content of $(BINDIR)
changed.
This is why make also supports order-only prerequisites (OOPs):
$(BINDIR)/program_name: $(SRCDIR)/program_name.c | $(BINDIR)
$(CC) $(CFLAGS) $< -o $@ $(LIBS)
$(BINDIR):
mkdir -p $@
Note the |
that introduces the list of OOPs. An OOP is built if it does not exist, which causes the targets depending on it to be (re-)built too. But if it exists make does not even consider its last modification time. Even if some target depending on it is older, it is not rebuilt just because of that.
Note: I also used the $<
and $@
automatic variables. In the rule's recipe they expand as the first prerequisite ($(SRCDIR)/program_name.c
) and the target ($(BINDIR)/program_name
), respectively. They are highly recommended: less typing, less errors prone, more generic rules... they have many good properties.
specific directory path using slash or dot slash (/ or ../) in Nodejs
..
is up one level, so you need to combine two of those with a slash like so: ../../routes/index.js
Related Topics
How to Determine the Precise Set of Environment Variables a Systemd Environmentfile Would Set
When We Run an Executable, Do All the Sections Get Loaded into Memory at Once
Unwanted Line Break Using Echo and Cat
Nasm Print One Character at a Time
Bash Script: Appending Text at the Last Character of Specific Line of a File
Perf-Report Show Value of CPU Register
Why Non-Pic Code Can't Be Totally Aslr Using Run-Time Fixups
Use Sed to Delete Certain Lines Using an Index with the Line Numbers to Delete
Access Denied to Android.Git.Kernel.Org
How to Get Clearcase Stream Name by a Given View Path
Convert Multiple Sftp Command Lines to a Single Line Command Line
Linux Diff Get Only Line Number in the Output
Escaping Quotes in Bash (Embedded Awk)
Awk: Words Frequency from One Text File, How to Ouput into Myfile.Txt