Visit Our UNIX and Linux User Community

Shell command to print full path to current home directory

Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users Shell command to print full path to current home directory
# 1  
Old 03-02-2020
Shell command to print full path to current home directory


This is a bit of an odd question. Most commends like echo $HOME will just print /home/user_name . I have a system where /home is mounted in a directory that is not under / and is also not its own partition.

There is a partition that is mounted in fstab with,
# shared linux data partition, /home is here by a bind mount
UUID=a89334f7-59b7-4d04-b89b-a5a30c379644  /mnt/linux_data  ext4  defaults  1 2

The home directory is mounted using a bind mount,
# bind mount /home to directory to a directory on /linux_data
/mnt/linux_data/01_centos  /home   none  bind   0 0

If I click on the home directory icon in dolphin, the location bar indicates /home/user_name as I would expect. Under the hood, this directory should actually be the directory /mnt/linux_data/01_centos/user_name which does exist in that location. I can navigate to /mnt/linux_data/01_centos/user_name by going through the /root icon in dolphin but I would like some means to print the full path to what the OS believes to be /home .

I am having some issues getting dolphin to display the rest of the partition that /home is mounted on and I would like to start by confirming that /home is where I think that it is. Am I making any sense at all???

# 2  
Old 03-02-2020
Do the commands realpath or readlink (with or without -f) help here at all?

Or perhaps the Cwd module from perl:
perl -MCwd -e 'print Cwd::realpath($ARGV[0])' /home/user_name

# 3  
Old 03-03-2020
Originally Posted by Chubler_XL
Do the commands realpath or readlink (with or without -f) help here at all?

Or perhaps the Cwd module from perl:
perl -MCwd -e 'print Cwd::realpath($ARGV[0])' /home/user_name

I have tried the following where dpi.txt is a file in /home/user_name
$ pwd

realpath dpi.txt
realpath -L dpi.txt
realpath -P dpi.txt

All of these result in /home/user_name/dpi.txt

The perl code output looked a bit odd be seemed to print the same thing. The readlink command gave the same results a realpath.

It looks like findmnt may give me what I need. Skipping allot of stuff,
├─/mnt/linux_data                     /dev/sdb3   ext4      rw,relatime,seclabel,data=ordered
├─/home                               /dev/sdb3[/01_centos]

This seems to indicate that /home is located on /dev/sdb3/01_centos , which is /mnt/linux_data/01_centos which is expected.


Last edited by LMHmedchem; 03-03-2020 at 12:28 AM..
# 4  
Old 03-03-2020
It does not make sense to me.
The purpose of the bind mount is to let it appear under /home/ - why do you want to break it?
# 5  
Old 03-03-2020
Originally Posted by MadeInGermany
It does not make sense to me.
The purpose of the bind mount is to let it appear under /home/ - why do you want to break it?
I was just trying to confirm that /home was actually mounted at the partition/directory I specified in fstab. I have more than one copy of /home and I wanted to make sure that the version I was looking at in dolphin through the home icon was at the location I was expecting.

As I understand it, when the OS can't find /home where you have specified, the OS will create a /home under / . If you then specify a new /home in a different location (partition etc), the original /home under / will still exist but not be accessible. I wasn't sure how to tell which /home I was looking at. Later, I was curious as to why I couldn't find a simple way find that information and decided to post a question.

I have another related issue I am trying to resolve. I will make another thread about that this afternoon but I first wanted to confirm that my fstab entries were mounting /home where I wanted it.

# 6  
Old 04-17-2020
So basically you want to confirm that /home is on the /mnt/linux_data partition rather than /? You could check out the stat command:
stat -c%d "${HOME}"

This will give the device number of the partition you are on in decimal. By comparing it with, say, the device number of / you know whether it is on the root or a different partition. Unfortunately stat doesn't give access to the UUID of the device (that I could see, anyway).

While this doesn't in itself confirm that the home directory is mounted on the correct partition, once you have the correct device number you could write a script with that id preloaded into the script.

Of course, all this will have to be done with a script or on the command line, and not, as you initially wished, in the file manager (Dolphin).


Previous Thread | Next Thread
Test Your Knowledge in Computers #769
Difficulty: Medium
Intel Core i7 (2008) has an 8 MB on-die unified L3 cache that is inclusive, shared by all cores.
True or False?

10 More Discussions You Might Find Interesting

1. Linux

How to print full path name along with file extension?

Hi I have a requirement like this: /abc/a/x.txt /abc/a/y.txt /abc/b/x.gz /abc/b/y.txt I need output like this: /abc/a:*.txt /abc/b:*.txt /abc/b:*.gz I have tried find /abc -type f -name "*.*" ||awk -F . '{print $NF}' it is print only extensions without path name. Please... (5 Replies)
Discussion started by: lijjumathew
5 Replies

2. UNIX for Dummies Questions & Answers

Extract directory name from the full directory path in UNIX using shell scripting

My input is as below : /splunk/scrubbed/rebate/IFIND.REBTE.WROC.txt /splunk/scrubbed/rebate/IFIND.REBTE.WROC.txt /splunk/scrubbed/loyal/IFIND.HELLO.WROC.txt /splunk/scrubbed/triumph/ifind.triumph.txt From the above input I want to extract the file names only . Basically I want to... (5 Replies)
Discussion started by: IshuGupta
5 Replies

3. UNIX for Dummies Questions & Answers

How to get the current directory Path?

How to get the current directory Path in your prompt? i am getting a $ mark only in my prompt? Please help me with this (3 Replies)
Discussion started by: Abhishek0683
3 Replies

4. Shell Programming and Scripting

$0 doesn't have full directory path

I'm running AIX unix korn shell. If I echo $0, I only get the filename, it does not have the directory name also. So when I do: `dirname $0` it returns a . (meaning current directory). How get $0 to return the full path/filename? Do I need something in my .profile? Thank you. (8 Replies)
Discussion started by: sboxtops
8 Replies

5. Shell Programming and Scripting

How do I get an ls -l to not show the full directory path?

Hey I'm new to the forums here, and I'm seeking help for this script that I'm writing. When I do ls -l of a directory it shows the full pathname for files in it. For example, if the directory is /internet/post/forum/ and the file is topic, it currently shows internet/post/forum/topic. What's the... (3 Replies)
Discussion started by: unity04
3 Replies

6. UNIX for Dummies Questions & Answers

Present Working Directory (not the full path)

Hi, Is there a command that tells you right away the current working directory? I know the command "pwd", but that one gives the full path. if pwd gives me: /a/b/c/d/ggg/HERE I want something that will give me: HERE Thanks, Gaurab (13 Replies)
Discussion started by: gaurab
13 Replies

7. Shell Programming and Scripting

Retrieve directory path from full file path through sh

Hi, I have a file abcd.txt which has contents in the form of full path file names i.e. $home> vi abcd.txt /a/b/c/r1.txt /q/w/e/r2.txt /z/x/c/r3.txt Now I want to retrieve only the directory path name for each row i.e /a/b/c/ /q/w/e/ How to get the same through shell script?... (7 Replies)
Discussion started by: royzlife
7 Replies

8. Shell Programming and Scripting

Sorting by Full directory path

I have a text file with full list of files with their full path. I wanted to sort it by directory then files then subdirectory by alphabetically. When I used the sort command it doesn't give like what I want. Could somebody help me on this. Here is the ex: This is what I'm getting... (2 Replies)
Discussion started by: javidraaj
2 Replies

9. Shell Programming and Scripting

want the current directory without the absolute path

Hi guys I'm trying to move an empty directory to the $TRASH directory. Say the directory i have is ./hello/hello1/hello2 and i'm in hello2, and i want hello2 moved. this code: TRASH=$home/deleted find "$TRASH/$1" -type d -exec rmdir { } \; 2>/dev/null mv -f $1 $TRASH 2>/dev/null works... (2 Replies)
Discussion started by: olimiles
2 Replies

10. UNIX for Dummies Questions & Answers

home directory in search path

Is it unsafe to put your own home directory (a regular user) in your search path? I am writing useful shell scripts, but don't have the permissions to put them in /usr/bin. (Korn shell) thanks (2 Replies)
Discussion started by: jpprial
2 Replies

Featured Tech Videos