How to create a folder symlink that has a different name?





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ margin-bottom:0;
}







1















I want to create a symlink



~/.pm2/logs -> /opt/myapp/log


When I run



ln -sFf /opt/myapp/log ~/.pm2/logs


I get a symlink



~/.pm2/logs/log -> /opt/myapp/log


which is not what I want.



I'd prefer a POSIX-compatible solution if possible.










share|improve this question









New contributor




ptkvsk is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.



























    1















    I want to create a symlink



    ~/.pm2/logs -> /opt/myapp/log


    When I run



    ln -sFf /opt/myapp/log ~/.pm2/logs


    I get a symlink



    ~/.pm2/logs/log -> /opt/myapp/log


    which is not what I want.



    I'd prefer a POSIX-compatible solution if possible.










    share|improve this question









    New contributor




    ptkvsk is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.























      1












      1








      1


      1






      I want to create a symlink



      ~/.pm2/logs -> /opt/myapp/log


      When I run



      ln -sFf /opt/myapp/log ~/.pm2/logs


      I get a symlink



      ~/.pm2/logs/log -> /opt/myapp/log


      which is not what I want.



      I'd prefer a POSIX-compatible solution if possible.










      share|improve this question









      New contributor




      ptkvsk is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.












      I want to create a symlink



      ~/.pm2/logs -> /opt/myapp/log


      When I run



      ln -sFf /opt/myapp/log ~/.pm2/logs


      I get a symlink



      ~/.pm2/logs/log -> /opt/myapp/log


      which is not what I want.



      I'd prefer a POSIX-compatible solution if possible.







      symlink ln






      share|improve this question









      New contributor




      ptkvsk is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      share|improve this question









      New contributor




      ptkvsk is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      share|improve this question




      share|improve this question








      edited 6 hours ago









      Kusalananda

      141k17263439




      141k17263439






      New contributor




      ptkvsk is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      asked 6 hours ago









      ptkvskptkvsk

      1062




      1062




      New contributor




      ptkvsk is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.





      New contributor





      ptkvsk is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






      ptkvsk is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






















          3 Answers
          3






          active

          oldest

          votes


















          3














          You already have a directory at ~/.pm2/logs. Since that directory exists, the symbolic link is put inside it.



          Would you want that ~/.pm2/logs is a symbolic link rather than a directory, then you will have to remove or rename that existing directory first.






          share|improve this answer
























          • I thought "-Ff" flags are specifically made to replace target directory so I don't have to remove it manually. Am I wrong?

            – ptkvsk
            6 hours ago








          • 1





            @ptkvsk The -F flag does something completely different and is not a POSIX option. The -f flag would not unlink a directory. The standard specifies that if the target (the last operand) is a directory, then the link will be place inside it. The -f option does not change this behaviour.

            – Kusalananda
            6 hours ago











          • Those flags likely only work with hard links, as well. With symbolic links it doesn't matter what the Target is, a file or a directory. to hard links it does matter.

            – 0xSheepdog
            6 hours ago





















          1














          Remove the ~/.pm2/logs directory first, because your target is an existing directory, the link is created inside it.






          share|improve this answer































            0














            As other answers say, there is already a directory there.



            To avoid this and instead get an error-message, use the -T option, unfortunately I don't think this is Posix (it is GNU).



            From the Gnu ln manual (same for cp and mv).



               ln [OPTION]... [-T] TARGET LINK_NAME   (1st form)
            ln [OPTION]... TARGET (2nd form)
            ln [OPTION]... TARGET... DIRECTORY (3rd form)
            ln [OPTION]... -t DIRECTORY TARGET... (4th form)


            Note form 1 without the -T is ambiguous with form 3 (both have two arguments).



            In Posix you can force this non-ambiguity by putting a / at the end of a directory name, in form 3, but I don't think there is any thing you can do the other way around. This is why Gnu added the -T option.






            share|improve this answer
























              Your Answer








              StackExchange.ready(function() {
              var channelOptions = {
              tags: "".split(" "),
              id: "106"
              };
              initTagRenderer("".split(" "), "".split(" "), channelOptions);

              StackExchange.using("externalEditor", function() {
              // Have to fire editor after snippets, if snippets enabled
              if (StackExchange.settings.snippets.snippetsEnabled) {
              StackExchange.using("snippets", function() {
              createEditor();
              });
              }
              else {
              createEditor();
              }
              });

              function createEditor() {
              StackExchange.prepareEditor({
              heartbeatType: 'answer',
              autoActivateHeartbeat: false,
              convertImagesToLinks: false,
              noModals: true,
              showLowRepImageUploadWarning: true,
              reputationToPostImages: null,
              bindNavPrevention: true,
              postfix: "",
              imageUploader: {
              brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
              contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
              allowUrls: true
              },
              onDemand: true,
              discardSelector: ".discard-answer"
              ,immediatelyShowMarkdownHelp:true
              });


              }
              });






              ptkvsk is a new contributor. Be nice, and check out our Code of Conduct.










              draft saved

              draft discarded


















              StackExchange.ready(
              function () {
              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f512139%2fhow-to-create-a-folder-symlink-that-has-a-different-name%23new-answer', 'question_page');
              }
              );

              Post as a guest















              Required, but never shown

























              3 Answers
              3






              active

              oldest

              votes








              3 Answers
              3






              active

              oldest

              votes









              active

              oldest

              votes






              active

              oldest

              votes









              3














              You already have a directory at ~/.pm2/logs. Since that directory exists, the symbolic link is put inside it.



              Would you want that ~/.pm2/logs is a symbolic link rather than a directory, then you will have to remove or rename that existing directory first.






              share|improve this answer
























              • I thought "-Ff" flags are specifically made to replace target directory so I don't have to remove it manually. Am I wrong?

                – ptkvsk
                6 hours ago








              • 1





                @ptkvsk The -F flag does something completely different and is not a POSIX option. The -f flag would not unlink a directory. The standard specifies that if the target (the last operand) is a directory, then the link will be place inside it. The -f option does not change this behaviour.

                – Kusalananda
                6 hours ago











              • Those flags likely only work with hard links, as well. With symbolic links it doesn't matter what the Target is, a file or a directory. to hard links it does matter.

                – 0xSheepdog
                6 hours ago


















              3














              You already have a directory at ~/.pm2/logs. Since that directory exists, the symbolic link is put inside it.



              Would you want that ~/.pm2/logs is a symbolic link rather than a directory, then you will have to remove or rename that existing directory first.






              share|improve this answer
























              • I thought "-Ff" flags are specifically made to replace target directory so I don't have to remove it manually. Am I wrong?

                – ptkvsk
                6 hours ago








              • 1





                @ptkvsk The -F flag does something completely different and is not a POSIX option. The -f flag would not unlink a directory. The standard specifies that if the target (the last operand) is a directory, then the link will be place inside it. The -f option does not change this behaviour.

                – Kusalananda
                6 hours ago











              • Those flags likely only work with hard links, as well. With symbolic links it doesn't matter what the Target is, a file or a directory. to hard links it does matter.

                – 0xSheepdog
                6 hours ago
















              3












              3








              3







              You already have a directory at ~/.pm2/logs. Since that directory exists, the symbolic link is put inside it.



              Would you want that ~/.pm2/logs is a symbolic link rather than a directory, then you will have to remove or rename that existing directory first.






              share|improve this answer













              You already have a directory at ~/.pm2/logs. Since that directory exists, the symbolic link is put inside it.



              Would you want that ~/.pm2/logs is a symbolic link rather than a directory, then you will have to remove or rename that existing directory first.







              share|improve this answer












              share|improve this answer



              share|improve this answer










              answered 6 hours ago









              KusalanandaKusalananda

              141k17263439




              141k17263439













              • I thought "-Ff" flags are specifically made to replace target directory so I don't have to remove it manually. Am I wrong?

                – ptkvsk
                6 hours ago








              • 1





                @ptkvsk The -F flag does something completely different and is not a POSIX option. The -f flag would not unlink a directory. The standard specifies that if the target (the last operand) is a directory, then the link will be place inside it. The -f option does not change this behaviour.

                – Kusalananda
                6 hours ago











              • Those flags likely only work with hard links, as well. With symbolic links it doesn't matter what the Target is, a file or a directory. to hard links it does matter.

                – 0xSheepdog
                6 hours ago





















              • I thought "-Ff" flags are specifically made to replace target directory so I don't have to remove it manually. Am I wrong?

                – ptkvsk
                6 hours ago








              • 1





                @ptkvsk The -F flag does something completely different and is not a POSIX option. The -f flag would not unlink a directory. The standard specifies that if the target (the last operand) is a directory, then the link will be place inside it. The -f option does not change this behaviour.

                – Kusalananda
                6 hours ago











              • Those flags likely only work with hard links, as well. With symbolic links it doesn't matter what the Target is, a file or a directory. to hard links it does matter.

                – 0xSheepdog
                6 hours ago



















              I thought "-Ff" flags are specifically made to replace target directory so I don't have to remove it manually. Am I wrong?

              – ptkvsk
              6 hours ago







              I thought "-Ff" flags are specifically made to replace target directory so I don't have to remove it manually. Am I wrong?

              – ptkvsk
              6 hours ago






              1




              1





              @ptkvsk The -F flag does something completely different and is not a POSIX option. The -f flag would not unlink a directory. The standard specifies that if the target (the last operand) is a directory, then the link will be place inside it. The -f option does not change this behaviour.

              – Kusalananda
              6 hours ago





              @ptkvsk The -F flag does something completely different and is not a POSIX option. The -f flag would not unlink a directory. The standard specifies that if the target (the last operand) is a directory, then the link will be place inside it. The -f option does not change this behaviour.

              – Kusalananda
              6 hours ago













              Those flags likely only work with hard links, as well. With symbolic links it doesn't matter what the Target is, a file or a directory. to hard links it does matter.

              – 0xSheepdog
              6 hours ago







              Those flags likely only work with hard links, as well. With symbolic links it doesn't matter what the Target is, a file or a directory. to hard links it does matter.

              – 0xSheepdog
              6 hours ago















              1














              Remove the ~/.pm2/logs directory first, because your target is an existing directory, the link is created inside it.






              share|improve this answer




























                1














                Remove the ~/.pm2/logs directory first, because your target is an existing directory, the link is created inside it.






                share|improve this answer


























                  1












                  1








                  1







                  Remove the ~/.pm2/logs directory first, because your target is an existing directory, the link is created inside it.






                  share|improve this answer













                  Remove the ~/.pm2/logs directory first, because your target is an existing directory, the link is created inside it.







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered 6 hours ago









                  XrXcaXrXca

                  813




                  813























                      0














                      As other answers say, there is already a directory there.



                      To avoid this and instead get an error-message, use the -T option, unfortunately I don't think this is Posix (it is GNU).



                      From the Gnu ln manual (same for cp and mv).



                         ln [OPTION]... [-T] TARGET LINK_NAME   (1st form)
                      ln [OPTION]... TARGET (2nd form)
                      ln [OPTION]... TARGET... DIRECTORY (3rd form)
                      ln [OPTION]... -t DIRECTORY TARGET... (4th form)


                      Note form 1 without the -T is ambiguous with form 3 (both have two arguments).



                      In Posix you can force this non-ambiguity by putting a / at the end of a directory name, in form 3, but I don't think there is any thing you can do the other way around. This is why Gnu added the -T option.






                      share|improve this answer




























                        0














                        As other answers say, there is already a directory there.



                        To avoid this and instead get an error-message, use the -T option, unfortunately I don't think this is Posix (it is GNU).



                        From the Gnu ln manual (same for cp and mv).



                           ln [OPTION]... [-T] TARGET LINK_NAME   (1st form)
                        ln [OPTION]... TARGET (2nd form)
                        ln [OPTION]... TARGET... DIRECTORY (3rd form)
                        ln [OPTION]... -t DIRECTORY TARGET... (4th form)


                        Note form 1 without the -T is ambiguous with form 3 (both have two arguments).



                        In Posix you can force this non-ambiguity by putting a / at the end of a directory name, in form 3, but I don't think there is any thing you can do the other way around. This is why Gnu added the -T option.






                        share|improve this answer


























                          0












                          0








                          0







                          As other answers say, there is already a directory there.



                          To avoid this and instead get an error-message, use the -T option, unfortunately I don't think this is Posix (it is GNU).



                          From the Gnu ln manual (same for cp and mv).



                             ln [OPTION]... [-T] TARGET LINK_NAME   (1st form)
                          ln [OPTION]... TARGET (2nd form)
                          ln [OPTION]... TARGET... DIRECTORY (3rd form)
                          ln [OPTION]... -t DIRECTORY TARGET... (4th form)


                          Note form 1 without the -T is ambiguous with form 3 (both have two arguments).



                          In Posix you can force this non-ambiguity by putting a / at the end of a directory name, in form 3, but I don't think there is any thing you can do the other way around. This is why Gnu added the -T option.






                          share|improve this answer













                          As other answers say, there is already a directory there.



                          To avoid this and instead get an error-message, use the -T option, unfortunately I don't think this is Posix (it is GNU).



                          From the Gnu ln manual (same for cp and mv).



                             ln [OPTION]... [-T] TARGET LINK_NAME   (1st form)
                          ln [OPTION]... TARGET (2nd form)
                          ln [OPTION]... TARGET... DIRECTORY (3rd form)
                          ln [OPTION]... -t DIRECTORY TARGET... (4th form)


                          Note form 1 without the -T is ambiguous with form 3 (both have two arguments).



                          In Posix you can force this non-ambiguity by putting a / at the end of a directory name, in form 3, but I don't think there is any thing you can do the other way around. This is why Gnu added the -T option.







                          share|improve this answer












                          share|improve this answer



                          share|improve this answer










                          answered 4 hours ago









                          ctrl-alt-delorctrl-alt-delor

                          12.4k52662




                          12.4k52662






















                              ptkvsk is a new contributor. Be nice, and check out our Code of Conduct.










                              draft saved

                              draft discarded


















                              ptkvsk is a new contributor. Be nice, and check out our Code of Conduct.













                              ptkvsk is a new contributor. Be nice, and check out our Code of Conduct.












                              ptkvsk is a new contributor. Be nice, and check out our Code of Conduct.
















                              Thanks for contributing an answer to Unix & Linux Stack Exchange!


                              • Please be sure to answer the question. Provide details and share your research!

                              But avoid



                              • Asking for help, clarification, or responding to other answers.

                              • Making statements based on opinion; back them up with references or personal experience.


                              To learn more, see our tips on writing great answers.




                              draft saved


                              draft discarded














                              StackExchange.ready(
                              function () {
                              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f512139%2fhow-to-create-a-folder-symlink-that-has-a-different-name%23new-answer', 'question_page');
                              }
                              );

                              Post as a guest















                              Required, but never shown





















































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown

































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown







                              Popular posts from this blog

                              How to label and detect the document text images

                              Vallis Paradisi

                              Tabula Rosettana