There are 3 ways to do this. And I'm guessing here because it's hard to understand what exactly you want.
- Just create a symbolic link
- Take use of the "bind" feature
- Make a disk image file and mount that
Senario 1.
We have /home mounted with all our disk storage, and now we want /app to just use the same directory as /home. Well just create a symbolic link.
ln -s /app /home
Now When you go into /app you will be in /home. Just know that symlink is treated like a file not directory. In case you need to monitor it from a script etc.
Senario 2.
You require it to be mounted, then we can use the "bind" feature of mount.
You create a bind mount like this.
mkdir /app
mount --bind /home /app
Now /app is the same as /home on a disk level/ mount level.
Also remember that if you want it to be more permanently as mounting it at boot time you need to add it to /etc/fstab
/home /app none defaults,bind 0 0
Senario 3.
Let's say you have all the storage space available at /home, and you need /app to be a separate mount point with it own storage. You could use the bind function to etc. mount /home/app to /app. This makes most sense. But you could also create a disk image file to hold your partition. This last method is not recommended but included to cover most options.
dd if=/dev/zero of=/home/app-disk.img bs=1M count=10
mkfs.ext4 /home/app-disk.img
mkdir /app
mount -o loop /home/app-disk.img /app
This will mount you disk image as /app and the "image" is contained on your main storage device.
Hope this helps, I recommend scenario/option 1 and 2.
PS.
Also you could look into shrinking your /home partition to free up partition table space and create a new separate for /app. But I don't recommend this for someone who don't know much about disk tables. This could potentially lead to loss of data.