Pergunta

I am trying to create a directory using mkdir in Debian but the problem is that the directory is created in the root directory. The problem comes trying to install OpenFOAM and I suspect that it is because "$" is used to create it.

Following the instructions in the OpenFOAM web site, it says to create a folder

$HOME/OpenFOAM/user-2.2.1

and then, to create within a folder called "run" using:

mkdir -p /FOAM_RUN

the problem is that the final directory (run) should have the following form:

/home/OpenFOAM/user-2.2.1/run

but using Debian I cannot create a dir with "sudo", so I have to do it as root and when I go inside the directory /home/OpenFOAM/user-2.2.1 and I do mkdir -p /FOAM_RUN , then the created folder is:

/root/OpenFOAM/root-2.2.1/run

and I need it to be created in the /home directory and not in the /root directory. I had created the folder just using

mkdir -p /home/OpenFOAM/user-2.2.1/run

but when I try to execute the OpenFOAM orders it doesn't work.

My questions are:

Why should mkdir $FOAM_RUN create the run directory and if I do it just as "mkdir run", it doesn't work?

Why is the "$" symbol there when I use mkdir? I was searching for it and (for example) the mkdir manual says nothing about it.

Excuse me, I am not an expert in Linux.

Foi útil?

Solução

The instructions are fairly straightforward, but you seem to have missed one of the notes. To reiterate a point they are making, you need to source ~/.bashrc after updating it. Then if you echo "$FOAM_RUN" you should see that this variable is now set to something like /home/luser/OpenFOAM/luser-2.2.1/run.

If you prefer to override it by hand, and assuming your user name is luser and your OpenFOAM version is 2.2.1, do this:

FOAM_RUN=$HOME/OpenFOAM/$USER-2.2.1/run
mkdir -p "$FOAM_RUN" # Note pedantic quoting

But if your .bashrc contains the code they instruct you to add, this should not be necessary.

Outras dicas

there is no reason why you cannot use sudo on Debian. if you don't have sudo installed, just install it, using something like the following (as root)

aptitude install sudo

after that, you have to configure it, so that your user can use the command. the easiest way to do so, is to run the following (as root):

adduser USER sudo

you have to replace USER by the user-id you want to allow using sudo. then you have to make log-in again as this user (if the user is already logged in, log it out)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top