inotifywait name space issue












1














I follow the "/ home" directory and its subdirectories with the bash script below. but when the directory names are blank, the script does not work correctly.



#!/bin/bash
inotifywait -m -r -e moved_to -e create "/home" | while read path action file
do
echo "$path$file -> $action"
done


Simple 1



/home/new_folder1/new_text.txt



script output



/home/new_folder1 -> CREATE,ISDIR
/home/new_folder1/new_text.txt -> CREATE


Simple 2



/home/new folder1/new text.txt



script output



/home/new folder1 -> CREATE,ISDIR
/home/newCREATE new text.txt -> folder1/


sorry bad english










share|improve this question





























    1














    I follow the "/ home" directory and its subdirectories with the bash script below. but when the directory names are blank, the script does not work correctly.



    #!/bin/bash
    inotifywait -m -r -e moved_to -e create "/home" | while read path action file
    do
    echo "$path$file -> $action"
    done


    Simple 1



    /home/new_folder1/new_text.txt



    script output



    /home/new_folder1 -> CREATE,ISDIR
    /home/new_folder1/new_text.txt -> CREATE


    Simple 2



    /home/new folder1/new text.txt



    script output



    /home/new folder1 -> CREATE,ISDIR
    /home/newCREATE new text.txt -> folder1/


    sorry bad english










    share|improve this question



























      1












      1








      1







      I follow the "/ home" directory and its subdirectories with the bash script below. but when the directory names are blank, the script does not work correctly.



      #!/bin/bash
      inotifywait -m -r -e moved_to -e create "/home" | while read path action file
      do
      echo "$path$file -> $action"
      done


      Simple 1



      /home/new_folder1/new_text.txt



      script output



      /home/new_folder1 -> CREATE,ISDIR
      /home/new_folder1/new_text.txt -> CREATE


      Simple 2



      /home/new folder1/new text.txt



      script output



      /home/new folder1 -> CREATE,ISDIR
      /home/newCREATE new text.txt -> folder1/


      sorry bad english










      share|improve this question















      I follow the "/ home" directory and its subdirectories with the bash script below. but when the directory names are blank, the script does not work correctly.



      #!/bin/bash
      inotifywait -m -r -e moved_to -e create "/home" | while read path action file
      do
      echo "$path$file -> $action"
      done


      Simple 1



      /home/new_folder1/new_text.txt



      script output



      /home/new_folder1 -> CREATE,ISDIR
      /home/new_folder1/new_text.txt -> CREATE


      Simple 2



      /home/new folder1/new text.txt



      script output



      /home/new folder1 -> CREATE,ISDIR
      /home/newCREATE new text.txt -> folder1/


      sorry bad english







      linux bash inotify






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Dec 14 at 10:59

























      asked Dec 14 at 10:23









      ihk

      83




      83






















          1 Answer
          1






          active

          oldest

          votes


















          2














          Specify a custom format that puts both path components in the rightmost field:



          inotifywait  --format="%e %w%f" | while read -r action fullpath





          share|improve this answer





















          • Yes, it worked that way smoothly. thank you so much
            – ihk
            Dec 14 at 10:39






          • 1




            Note: if the sole purpose of while read was to echo in the other format (and not to parse further) then --format="%w%f -> %e" will do this, without the loop.
            – Kamil Maciorowski
            Dec 14 at 10:43











          Your Answer








          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "3"
          };
          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: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          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
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1383536%2finotifywait-name-space-issue%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          2














          Specify a custom format that puts both path components in the rightmost field:



          inotifywait  --format="%e %w%f" | while read -r action fullpath





          share|improve this answer





















          • Yes, it worked that way smoothly. thank you so much
            – ihk
            Dec 14 at 10:39






          • 1




            Note: if the sole purpose of while read was to echo in the other format (and not to parse further) then --format="%w%f -> %e" will do this, without the loop.
            – Kamil Maciorowski
            Dec 14 at 10:43
















          2














          Specify a custom format that puts both path components in the rightmost field:



          inotifywait  --format="%e %w%f" | while read -r action fullpath





          share|improve this answer





















          • Yes, it worked that way smoothly. thank you so much
            – ihk
            Dec 14 at 10:39






          • 1




            Note: if the sole purpose of while read was to echo in the other format (and not to parse further) then --format="%w%f -> %e" will do this, without the loop.
            – Kamil Maciorowski
            Dec 14 at 10:43














          2












          2








          2






          Specify a custom format that puts both path components in the rightmost field:



          inotifywait  --format="%e %w%f" | while read -r action fullpath





          share|improve this answer












          Specify a custom format that puts both path components in the rightmost field:



          inotifywait  --format="%e %w%f" | while read -r action fullpath






          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Dec 14 at 10:31









          grawity

          232k35490546




          232k35490546












          • Yes, it worked that way smoothly. thank you so much
            – ihk
            Dec 14 at 10:39






          • 1




            Note: if the sole purpose of while read was to echo in the other format (and not to parse further) then --format="%w%f -> %e" will do this, without the loop.
            – Kamil Maciorowski
            Dec 14 at 10:43


















          • Yes, it worked that way smoothly. thank you so much
            – ihk
            Dec 14 at 10:39






          • 1




            Note: if the sole purpose of while read was to echo in the other format (and not to parse further) then --format="%w%f -> %e" will do this, without the loop.
            – Kamil Maciorowski
            Dec 14 at 10:43
















          Yes, it worked that way smoothly. thank you so much
          – ihk
          Dec 14 at 10:39




          Yes, it worked that way smoothly. thank you so much
          – ihk
          Dec 14 at 10:39




          1




          1




          Note: if the sole purpose of while read was to echo in the other format (and not to parse further) then --format="%w%f -> %e" will do this, without the loop.
          – Kamil Maciorowski
          Dec 14 at 10:43




          Note: if the sole purpose of while read was to echo in the other format (and not to parse further) then --format="%w%f -> %e" will do this, without the loop.
          – Kamil Maciorowski
          Dec 14 at 10:43


















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Super User!


          • 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.





          Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


          Please pay close attention to the following guidance:


          • 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%2fsuperuser.com%2fquestions%2f1383536%2finotifywait-name-space-issue%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

          flock() on closed filehandle LOCK_FILE at /usr/bin/apt-mirror

          Mangá

          Eduardo VII do Reino Unido