How to move content of a folder to current folder? The 2019 Stack Overflow Developer Survey Results Are InHow do you move all files (including hidden) from one directory to another?Copy directory, but fail if file already exists at destinationRecursive move (`mv -rn`, like `cp -rn`), a move that will only move not present filesMove Files From Subfolders to Parent Folder Within Larger DirectoryHow can I move a file within a directory to the current working directory without renaming?How to extract a specifically named folder from a recursive directory, delete the others?Copying a folder using xargsMove Directory Contents Up A Level And OVERWRITE Target FilesMove folder structure across multiple directoriesMoving contents of current directory up one level and overwriting if exists recursively

Is an up-to-date browser secure on an out-of-date OS?

Building a conditional check constraint

Is bread bad for ducks?

Protecting Dualbooting Windows from dangerous code (like rm -rf)

Resizing object distorts it (Illustrator CC 2018)

Can you compress metal and what would be the consequences?

Who coined the term "madman theory"?

Landlord wants to switch my lease to a "Land contract" to "get back at the city"

Origin of "cooter" meaning "vagina"

Why isn't the circumferential light around the M87 black hole's event horizon symmetric?

Right tool to dig six foot holes?

If I score a critical hit on an 18 or higher, what are my chances of getting a critical hit if I roll 3d20?

Why is the maximum length of OpenWrt’s root password 8 characters?

Why did Acorn's A3000 have red function keys?

How to manage monthly salary

Button changing it's text & action. Good or terrible?

Should I use my personal e-mail address, or my workplace one, when registering to external websites for work purposes?

Return to UK after being refused entry years previously

STM32 programming and BOOT0 pin

Is there a symbol for a right arrow with a square in the middle?

How to save as into a customized destination on macOS?

Why can Shazam fly?

How to deal with fear of taking dependencies

Which Sci-Fi work first showed weapon of galactic-scale mass destruction?



How to move content of a folder to current folder?



The 2019 Stack Overflow Developer Survey Results Are InHow do you move all files (including hidden) from one directory to another?Copy directory, but fail if file already exists at destinationRecursive move (`mv -rn`, like `cp -rn`), a move that will only move not present filesMove Files From Subfolders to Parent Folder Within Larger DirectoryHow can I move a file within a directory to the current working directory without renaming?How to extract a specifically named folder from a recursive directory, delete the others?Copying a folder using xargsMove Directory Contents Up A Level And OVERWRITE Target FilesMove folder structure across multiple directoriesMoving contents of current directory up one level and overwriting if exists recursively



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








5















I have this folder structure:



foo
`----> bar


How can I extract the content of bar into foo?



I tried mv -f bar/* . from within foo.




-f, --force | dont't ask before overwrite




but I get "could not move bar/ajax to foo/ajax because the directory is not empty"



How can I solve this?










share|improve this question
























  • mv complains for reasons, in the end it depends what exactly you want to happen when there are folders and files to be overwritten... There are also some corner cases to take note of, e.g. what happens when there is a bar/bar/, or other conflicts.

    – frostschutz
    Jul 5 '18 at 11:02












  • Is there anything else in foo? (is it just bar?)

    – ctrl-alt-delor
    Jul 5 '18 at 18:11











  • @ctrl-alt-delor, there are many other files and folders in foo

    – Black
    Jul 6 '18 at 8:04











  • It is best to edit the question, so that people see it (not just leave amendments in the comments).

    – ctrl-alt-delor
    Jul 6 '18 at 8:04

















5















I have this folder structure:



foo
`----> bar


How can I extract the content of bar into foo?



I tried mv -f bar/* . from within foo.




-f, --force | dont't ask before overwrite




but I get "could not move bar/ajax to foo/ajax because the directory is not empty"



How can I solve this?










share|improve this question
























  • mv complains for reasons, in the end it depends what exactly you want to happen when there are folders and files to be overwritten... There are also some corner cases to take note of, e.g. what happens when there is a bar/bar/, or other conflicts.

    – frostschutz
    Jul 5 '18 at 11:02












  • Is there anything else in foo? (is it just bar?)

    – ctrl-alt-delor
    Jul 5 '18 at 18:11











  • @ctrl-alt-delor, there are many other files and folders in foo

    – Black
    Jul 6 '18 at 8:04











  • It is best to edit the question, so that people see it (not just leave amendments in the comments).

    – ctrl-alt-delor
    Jul 6 '18 at 8:04













5












5








5


1






I have this folder structure:



foo
`----> bar


How can I extract the content of bar into foo?



I tried mv -f bar/* . from within foo.




-f, --force | dont't ask before overwrite




but I get "could not move bar/ajax to foo/ajax because the directory is not empty"



How can I solve this?










share|improve this question
















I have this folder structure:



foo
`----> bar


How can I extract the content of bar into foo?



I tried mv -f bar/* . from within foo.




-f, --force | dont't ask before overwrite




but I get "could not move bar/ajax to foo/ajax because the directory is not empty"



How can I solve this?







cp mv






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Jul 5 '18 at 10:33







Black

















asked Jun 21 '18 at 11:59









BlackBlack

57421030




57421030












  • mv complains for reasons, in the end it depends what exactly you want to happen when there are folders and files to be overwritten... There are also some corner cases to take note of, e.g. what happens when there is a bar/bar/, or other conflicts.

    – frostschutz
    Jul 5 '18 at 11:02












  • Is there anything else in foo? (is it just bar?)

    – ctrl-alt-delor
    Jul 5 '18 at 18:11











  • @ctrl-alt-delor, there are many other files and folders in foo

    – Black
    Jul 6 '18 at 8:04











  • It is best to edit the question, so that people see it (not just leave amendments in the comments).

    – ctrl-alt-delor
    Jul 6 '18 at 8:04

















  • mv complains for reasons, in the end it depends what exactly you want to happen when there are folders and files to be overwritten... There are also some corner cases to take note of, e.g. what happens when there is a bar/bar/, or other conflicts.

    – frostschutz
    Jul 5 '18 at 11:02












  • Is there anything else in foo? (is it just bar?)

    – ctrl-alt-delor
    Jul 5 '18 at 18:11











  • @ctrl-alt-delor, there are many other files and folders in foo

    – Black
    Jul 6 '18 at 8:04











  • It is best to edit the question, so that people see it (not just leave amendments in the comments).

    – ctrl-alt-delor
    Jul 6 '18 at 8:04
















mv complains for reasons, in the end it depends what exactly you want to happen when there are folders and files to be overwritten... There are also some corner cases to take note of, e.g. what happens when there is a bar/bar/, or other conflicts.

– frostschutz
Jul 5 '18 at 11:02






mv complains for reasons, in the end it depends what exactly you want to happen when there are folders and files to be overwritten... There are also some corner cases to take note of, e.g. what happens when there is a bar/bar/, or other conflicts.

– frostschutz
Jul 5 '18 at 11:02














Is there anything else in foo? (is it just bar?)

– ctrl-alt-delor
Jul 5 '18 at 18:11





Is there anything else in foo? (is it just bar?)

– ctrl-alt-delor
Jul 5 '18 at 18:11













@ctrl-alt-delor, there are many other files and folders in foo

– Black
Jul 6 '18 at 8:04





@ctrl-alt-delor, there are many other files and folders in foo

– Black
Jul 6 '18 at 8:04













It is best to edit the question, so that people see it (not just leave amendments in the comments).

– ctrl-alt-delor
Jul 6 '18 at 8:04





It is best to edit the question, so that people see it (not just leave amendments in the comments).

– ctrl-alt-delor
Jul 6 '18 at 8:04










5 Answers
5






active

oldest

votes


















7





+50









mv will overwrite files, but it will refuse to overwrite directories. There's no single command that will merge directories and remove the source directories (which is probably what you want with mv). Even rsync --remove-source-files will leave empty directories.



You can use a combination of commands:



cp -a dev/. .
rm -r dev


which copies everything in dev to the current directory and then removes the dev directory.



Or:



rsync -a --remove-source-files dev/ .
find dev -depth -type d -exec rmdir ;


which uses rsync to move all the files, and then deletes the empty directories left behind.






share|improve this answer






























    1














    Issue at Hand



    You wish to move the contents of foo/bar/ up a level to foo/.



    I will be referencing this post on superuser as well as this post from serverfault in the solution.



    Solution



    According to user Stephan202, you are looking for the following commands to execute this task:



    cd /path/to/foo/bar
    mv * .[^.]* ..


    It should also be possible, from within foo/bar/, to run the following command as well:



    (shopt -s dotglob; mv -- * ..)


    Verify you have the correct permissions as well. If needed run the command with root(sudo) privileges.



    Conclusion



    Please comment if you have any questions or issues with this answer. I highly suggest you read through each link I have provided thoroughly before attempting the commands. I appreciate feedback to correct any misconceptions and to improve my posts. I can update my answer as needed.



    Best of Luck!






    share|improve this answer
































      1














      Edit: I revised this answer to indicate the pros and cons.



      Some manual pages are rather terse because the information is mentioned in the corresponding Info manual.




      Man



      -f, --force



             do not prompt before overwriting



      Info



              Note: mv will only replace empty directories in the destination. Conflicting populated directories are skipped with a diagnostic.



      [...]



      -f,
      --force



             If a destination file exists but is normally unwritable, standard input is a terminal, and the -f or --force option is not given, mv prompts the user for whether to replace the file. (You might own the file, or have write permission on its directory.) If the response is not affirmative, the file is skipped.




      mv cannot replace non-empty directories but can overwrite existing files owned by the user which are normally unwritable (the owner do not have write permissions, c.f. the quotation).



      foo 
      |-- ajax
      `-- bar
      `-- ajax


      You can merge the directories foo/ajax and foo/bar/ajax either keeping all files or overwritting identical files as proposed by @muru.



      However, this method is unsuitable if the contents of these directories are unrelated. It may be not obvious at first glance so let's see a new tree.



      prompt% tree home/network
      home/network/
      ├── data
      │   ├── img
      │   │   └── demo.png
      │   └── src
      │   ├── contact.pdf
      │   └── report.pdf
      ├── hardware
      │   ├── api
      │   ├── docs
      │   └── src
      │   └── driver.c
      ├── misc
      │   └── src
      │   └── init.py
      ├── README
      └── src
      ├── main.c
      └── manager.c


      We can move the contents of network/data into network and choose to merge directories having the same name (c.f. below).



      prompt% cp -ab home/network/data/* home/network
      prompt% rm -r home/network/data/*
      prompt% tree home/network
      home/network/
      ├── data
      ├── hardware
      │ ├── api
      │ ├── docs
      │ └── src
      │ └── driver.c
      ├── img
      │ └── demo.png
      ├── misc
      │ └── src
      │ └── init.py
      ├── README
      └── src
      ├── contact.pdf
      ├── main.c
      ├── manager.c
      └── report.pdf


      As we can see, the final directory network/src may contain unrelated files after moving. If it is undesirable, we can rename files and directories having the same names after moving.



      prompt% mv -b -S "_data" home/network/data/* home/network
      prompt% tree home/network
      home/network/
      |-- README
      |-- data
      |-- hardware
      | |-- api
      | |-- docs
      | `-- src
      | `-- driver.c
      |-- lib
      | `-- demo.png
      |-- misc
      | `-- src
      | `-- init.py
      |-- src
      | |-- contact.pdf
      | `-- report.pdf
      `-- src_data
      |-- main.c
      `-- manager.c





      share|improve this answer
































        0














        If you have a directory foo that only contains a directory bar. (bar may contain other stuff).



        And you want to rename foo/barfoo, then do:



        mv -T foo foo.original
        mv -T foo.original/bar foo
        rmdir foo.original


        You can leave of the -T if your mv does not have this option, however it makes it safer.






        share|improve this answer
































          -2














          Simply use the move command :



          cd foo
          mv bar/* .


          As Jeff Schaller suggest, use



           shopt -s dotglob 


          before the mv command to move hidden files and use the option -i of mv if you want an interactive check before overwriting






          share|improve this answer

























          • In bash, consider setting dotglob so that this picks up “hidden” files.

            – Jeff Schaller
            Jun 21 '18 at 12:05











          • Note that this may overwrite files that have the same names in both folders, and that hidden files are skipped.

            – Kusalananda
            Jun 21 '18 at 12:06






          • 1





            Does not work, I get `Not possible because the directory is not empty"

            – Black
            Jul 5 '18 at 10:30











          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
          );



          );













          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f451081%2fhow-to-move-content-of-a-folder-to-current-folder%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          5 Answers
          5






          active

          oldest

          votes








          5 Answers
          5






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          7





          +50









          mv will overwrite files, but it will refuse to overwrite directories. There's no single command that will merge directories and remove the source directories (which is probably what you want with mv). Even rsync --remove-source-files will leave empty directories.



          You can use a combination of commands:



          cp -a dev/. .
          rm -r dev


          which copies everything in dev to the current directory and then removes the dev directory.



          Or:



          rsync -a --remove-source-files dev/ .
          find dev -depth -type d -exec rmdir ;


          which uses rsync to move all the files, and then deletes the empty directories left behind.






          share|improve this answer



























            7





            +50









            mv will overwrite files, but it will refuse to overwrite directories. There's no single command that will merge directories and remove the source directories (which is probably what you want with mv). Even rsync --remove-source-files will leave empty directories.



            You can use a combination of commands:



            cp -a dev/. .
            rm -r dev


            which copies everything in dev to the current directory and then removes the dev directory.



            Or:



            rsync -a --remove-source-files dev/ .
            find dev -depth -type d -exec rmdir ;


            which uses rsync to move all the files, and then deletes the empty directories left behind.






            share|improve this answer

























              7





              +50







              7





              +50



              7




              +50





              mv will overwrite files, but it will refuse to overwrite directories. There's no single command that will merge directories and remove the source directories (which is probably what you want with mv). Even rsync --remove-source-files will leave empty directories.



              You can use a combination of commands:



              cp -a dev/. .
              rm -r dev


              which copies everything in dev to the current directory and then removes the dev directory.



              Or:



              rsync -a --remove-source-files dev/ .
              find dev -depth -type d -exec rmdir ;


              which uses rsync to move all the files, and then deletes the empty directories left behind.






              share|improve this answer













              mv will overwrite files, but it will refuse to overwrite directories. There's no single command that will merge directories and remove the source directories (which is probably what you want with mv). Even rsync --remove-source-files will leave empty directories.



              You can use a combination of commands:



              cp -a dev/. .
              rm -r dev


              which copies everything in dev to the current directory and then removes the dev directory.



              Or:



              rsync -a --remove-source-files dev/ .
              find dev -depth -type d -exec rmdir ;


              which uses rsync to move all the files, and then deletes the empty directories left behind.







              share|improve this answer












              share|improve this answer



              share|improve this answer










              answered Jul 5 '18 at 10:58









              murumuru

              37.4k589164




              37.4k589164























                  1














                  Issue at Hand



                  You wish to move the contents of foo/bar/ up a level to foo/.



                  I will be referencing this post on superuser as well as this post from serverfault in the solution.



                  Solution



                  According to user Stephan202, you are looking for the following commands to execute this task:



                  cd /path/to/foo/bar
                  mv * .[^.]* ..


                  It should also be possible, from within foo/bar/, to run the following command as well:



                  (shopt -s dotglob; mv -- * ..)


                  Verify you have the correct permissions as well. If needed run the command with root(sudo) privileges.



                  Conclusion



                  Please comment if you have any questions or issues with this answer. I highly suggest you read through each link I have provided thoroughly before attempting the commands. I appreciate feedback to correct any misconceptions and to improve my posts. I can update my answer as needed.



                  Best of Luck!






                  share|improve this answer





























                    1














                    Issue at Hand



                    You wish to move the contents of foo/bar/ up a level to foo/.



                    I will be referencing this post on superuser as well as this post from serverfault in the solution.



                    Solution



                    According to user Stephan202, you are looking for the following commands to execute this task:



                    cd /path/to/foo/bar
                    mv * .[^.]* ..


                    It should also be possible, from within foo/bar/, to run the following command as well:



                    (shopt -s dotglob; mv -- * ..)


                    Verify you have the correct permissions as well. If needed run the command with root(sudo) privileges.



                    Conclusion



                    Please comment if you have any questions or issues with this answer. I highly suggest you read through each link I have provided thoroughly before attempting the commands. I appreciate feedback to correct any misconceptions and to improve my posts. I can update my answer as needed.



                    Best of Luck!






                    share|improve this answer



























                      1












                      1








                      1







                      Issue at Hand



                      You wish to move the contents of foo/bar/ up a level to foo/.



                      I will be referencing this post on superuser as well as this post from serverfault in the solution.



                      Solution



                      According to user Stephan202, you are looking for the following commands to execute this task:



                      cd /path/to/foo/bar
                      mv * .[^.]* ..


                      It should also be possible, from within foo/bar/, to run the following command as well:



                      (shopt -s dotglob; mv -- * ..)


                      Verify you have the correct permissions as well. If needed run the command with root(sudo) privileges.



                      Conclusion



                      Please comment if you have any questions or issues with this answer. I highly suggest you read through each link I have provided thoroughly before attempting the commands. I appreciate feedback to correct any misconceptions and to improve my posts. I can update my answer as needed.



                      Best of Luck!






                      share|improve this answer















                      Issue at Hand



                      You wish to move the contents of foo/bar/ up a level to foo/.



                      I will be referencing this post on superuser as well as this post from serverfault in the solution.



                      Solution



                      According to user Stephan202, you are looking for the following commands to execute this task:



                      cd /path/to/foo/bar
                      mv * .[^.]* ..


                      It should also be possible, from within foo/bar/, to run the following command as well:



                      (shopt -s dotglob; mv -- * ..)


                      Verify you have the correct permissions as well. If needed run the command with root(sudo) privileges.



                      Conclusion



                      Please comment if you have any questions or issues with this answer. I highly suggest you read through each link I have provided thoroughly before attempting the commands. I appreciate feedback to correct any misconceptions and to improve my posts. I can update my answer as needed.



                      Best of Luck!







                      share|improve this answer














                      share|improve this answer



                      share|improve this answer








                      edited Jul 21 '18 at 18:40

























                      answered Jul 5 '18 at 11:08









                      kemotepkemotep

                      2,6983823




                      2,6983823





















                          1














                          Edit: I revised this answer to indicate the pros and cons.



                          Some manual pages are rather terse because the information is mentioned in the corresponding Info manual.




                          Man



                          -f, --force



                                 do not prompt before overwriting



                          Info



                                  Note: mv will only replace empty directories in the destination. Conflicting populated directories are skipped with a diagnostic.



                          [...]



                          -f,
                          --force



                                 If a destination file exists but is normally unwritable, standard input is a terminal, and the -f or --force option is not given, mv prompts the user for whether to replace the file. (You might own the file, or have write permission on its directory.) If the response is not affirmative, the file is skipped.




                          mv cannot replace non-empty directories but can overwrite existing files owned by the user which are normally unwritable (the owner do not have write permissions, c.f. the quotation).



                          foo 
                          |-- ajax
                          `-- bar
                          `-- ajax


                          You can merge the directories foo/ajax and foo/bar/ajax either keeping all files or overwritting identical files as proposed by @muru.



                          However, this method is unsuitable if the contents of these directories are unrelated. It may be not obvious at first glance so let's see a new tree.



                          prompt% tree home/network
                          home/network/
                          ├── data
                          │   ├── img
                          │   │   └── demo.png
                          │   └── src
                          │   ├── contact.pdf
                          │   └── report.pdf
                          ├── hardware
                          │   ├── api
                          │   ├── docs
                          │   └── src
                          │   └── driver.c
                          ├── misc
                          │   └── src
                          │   └── init.py
                          ├── README
                          └── src
                          ├── main.c
                          └── manager.c


                          We can move the contents of network/data into network and choose to merge directories having the same name (c.f. below).



                          prompt% cp -ab home/network/data/* home/network
                          prompt% rm -r home/network/data/*
                          prompt% tree home/network
                          home/network/
                          ├── data
                          ├── hardware
                          │ ├── api
                          │ ├── docs
                          │ └── src
                          │ └── driver.c
                          ├── img
                          │ └── demo.png
                          ├── misc
                          │ └── src
                          │ └── init.py
                          ├── README
                          └── src
                          ├── contact.pdf
                          ├── main.c
                          ├── manager.c
                          └── report.pdf


                          As we can see, the final directory network/src may contain unrelated files after moving. If it is undesirable, we can rename files and directories having the same names after moving.



                          prompt% mv -b -S "_data" home/network/data/* home/network
                          prompt% tree home/network
                          home/network/
                          |-- README
                          |-- data
                          |-- hardware
                          | |-- api
                          | |-- docs
                          | `-- src
                          | `-- driver.c
                          |-- lib
                          | `-- demo.png
                          |-- misc
                          | `-- src
                          | `-- init.py
                          |-- src
                          | |-- contact.pdf
                          | `-- report.pdf
                          `-- src_data
                          |-- main.c
                          `-- manager.c





                          share|improve this answer





























                            1














                            Edit: I revised this answer to indicate the pros and cons.



                            Some manual pages are rather terse because the information is mentioned in the corresponding Info manual.




                            Man



                            -f, --force



                                   do not prompt before overwriting



                            Info



                                    Note: mv will only replace empty directories in the destination. Conflicting populated directories are skipped with a diagnostic.



                            [...]



                            -f,
                            --force



                                   If a destination file exists but is normally unwritable, standard input is a terminal, and the -f or --force option is not given, mv prompts the user for whether to replace the file. (You might own the file, or have write permission on its directory.) If the response is not affirmative, the file is skipped.




                            mv cannot replace non-empty directories but can overwrite existing files owned by the user which are normally unwritable (the owner do not have write permissions, c.f. the quotation).



                            foo 
                            |-- ajax
                            `-- bar
                            `-- ajax


                            You can merge the directories foo/ajax and foo/bar/ajax either keeping all files or overwritting identical files as proposed by @muru.



                            However, this method is unsuitable if the contents of these directories are unrelated. It may be not obvious at first glance so let's see a new tree.



                            prompt% tree home/network
                            home/network/
                            ├── data
                            │   ├── img
                            │   │   └── demo.png
                            │   └── src
                            │   ├── contact.pdf
                            │   └── report.pdf
                            ├── hardware
                            │   ├── api
                            │   ├── docs
                            │   └── src
                            │   └── driver.c
                            ├── misc
                            │   └── src
                            │   └── init.py
                            ├── README
                            └── src
                            ├── main.c
                            └── manager.c


                            We can move the contents of network/data into network and choose to merge directories having the same name (c.f. below).



                            prompt% cp -ab home/network/data/* home/network
                            prompt% rm -r home/network/data/*
                            prompt% tree home/network
                            home/network/
                            ├── data
                            ├── hardware
                            │ ├── api
                            │ ├── docs
                            │ └── src
                            │ └── driver.c
                            ├── img
                            │ └── demo.png
                            ├── misc
                            │ └── src
                            │ └── init.py
                            ├── README
                            └── src
                            ├── contact.pdf
                            ├── main.c
                            ├── manager.c
                            └── report.pdf


                            As we can see, the final directory network/src may contain unrelated files after moving. If it is undesirable, we can rename files and directories having the same names after moving.



                            prompt% mv -b -S "_data" home/network/data/* home/network
                            prompt% tree home/network
                            home/network/
                            |-- README
                            |-- data
                            |-- hardware
                            | |-- api
                            | |-- docs
                            | `-- src
                            | `-- driver.c
                            |-- lib
                            | `-- demo.png
                            |-- misc
                            | `-- src
                            | `-- init.py
                            |-- src
                            | |-- contact.pdf
                            | `-- report.pdf
                            `-- src_data
                            |-- main.c
                            `-- manager.c





                            share|improve this answer



























                              1












                              1








                              1







                              Edit: I revised this answer to indicate the pros and cons.



                              Some manual pages are rather terse because the information is mentioned in the corresponding Info manual.




                              Man



                              -f, --force



                                     do not prompt before overwriting



                              Info



                                      Note: mv will only replace empty directories in the destination. Conflicting populated directories are skipped with a diagnostic.



                              [...]



                              -f,
                              --force



                                     If a destination file exists but is normally unwritable, standard input is a terminal, and the -f or --force option is not given, mv prompts the user for whether to replace the file. (You might own the file, or have write permission on its directory.) If the response is not affirmative, the file is skipped.




                              mv cannot replace non-empty directories but can overwrite existing files owned by the user which are normally unwritable (the owner do not have write permissions, c.f. the quotation).



                              foo 
                              |-- ajax
                              `-- bar
                              `-- ajax


                              You can merge the directories foo/ajax and foo/bar/ajax either keeping all files or overwritting identical files as proposed by @muru.



                              However, this method is unsuitable if the contents of these directories are unrelated. It may be not obvious at first glance so let's see a new tree.



                              prompt% tree home/network
                              home/network/
                              ├── data
                              │   ├── img
                              │   │   └── demo.png
                              │   └── src
                              │   ├── contact.pdf
                              │   └── report.pdf
                              ├── hardware
                              │   ├── api
                              │   ├── docs
                              │   └── src
                              │   └── driver.c
                              ├── misc
                              │   └── src
                              │   └── init.py
                              ├── README
                              └── src
                              ├── main.c
                              └── manager.c


                              We can move the contents of network/data into network and choose to merge directories having the same name (c.f. below).



                              prompt% cp -ab home/network/data/* home/network
                              prompt% rm -r home/network/data/*
                              prompt% tree home/network
                              home/network/
                              ├── data
                              ├── hardware
                              │ ├── api
                              │ ├── docs
                              │ └── src
                              │ └── driver.c
                              ├── img
                              │ └── demo.png
                              ├── misc
                              │ └── src
                              │ └── init.py
                              ├── README
                              └── src
                              ├── contact.pdf
                              ├── main.c
                              ├── manager.c
                              └── report.pdf


                              As we can see, the final directory network/src may contain unrelated files after moving. If it is undesirable, we can rename files and directories having the same names after moving.



                              prompt% mv -b -S "_data" home/network/data/* home/network
                              prompt% tree home/network
                              home/network/
                              |-- README
                              |-- data
                              |-- hardware
                              | |-- api
                              | |-- docs
                              | `-- src
                              | `-- driver.c
                              |-- lib
                              | `-- demo.png
                              |-- misc
                              | `-- src
                              | `-- init.py
                              |-- src
                              | |-- contact.pdf
                              | `-- report.pdf
                              `-- src_data
                              |-- main.c
                              `-- manager.c





                              share|improve this answer















                              Edit: I revised this answer to indicate the pros and cons.



                              Some manual pages are rather terse because the information is mentioned in the corresponding Info manual.




                              Man



                              -f, --force



                                     do not prompt before overwriting



                              Info



                                      Note: mv will only replace empty directories in the destination. Conflicting populated directories are skipped with a diagnostic.



                              [...]



                              -f,
                              --force



                                     If a destination file exists but is normally unwritable, standard input is a terminal, and the -f or --force option is not given, mv prompts the user for whether to replace the file. (You might own the file, or have write permission on its directory.) If the response is not affirmative, the file is skipped.




                              mv cannot replace non-empty directories but can overwrite existing files owned by the user which are normally unwritable (the owner do not have write permissions, c.f. the quotation).



                              foo 
                              |-- ajax
                              `-- bar
                              `-- ajax


                              You can merge the directories foo/ajax and foo/bar/ajax either keeping all files or overwritting identical files as proposed by @muru.



                              However, this method is unsuitable if the contents of these directories are unrelated. It may be not obvious at first glance so let's see a new tree.



                              prompt% tree home/network
                              home/network/
                              ├── data
                              │   ├── img
                              │   │   └── demo.png
                              │   └── src
                              │   ├── contact.pdf
                              │   └── report.pdf
                              ├── hardware
                              │   ├── api
                              │   ├── docs
                              │   └── src
                              │   └── driver.c
                              ├── misc
                              │   └── src
                              │   └── init.py
                              ├── README
                              └── src
                              ├── main.c
                              └── manager.c


                              We can move the contents of network/data into network and choose to merge directories having the same name (c.f. below).



                              prompt% cp -ab home/network/data/* home/network
                              prompt% rm -r home/network/data/*
                              prompt% tree home/network
                              home/network/
                              ├── data
                              ├── hardware
                              │ ├── api
                              │ ├── docs
                              │ └── src
                              │ └── driver.c
                              ├── img
                              │ └── demo.png
                              ├── misc
                              │ └── src
                              │ └── init.py
                              ├── README
                              └── src
                              ├── contact.pdf
                              ├── main.c
                              ├── manager.c
                              └── report.pdf


                              As we can see, the final directory network/src may contain unrelated files after moving. If it is undesirable, we can rename files and directories having the same names after moving.



                              prompt% mv -b -S "_data" home/network/data/* home/network
                              prompt% tree home/network
                              home/network/
                              |-- README
                              |-- data
                              |-- hardware
                              | |-- api
                              | |-- docs
                              | `-- src
                              | `-- driver.c
                              |-- lib
                              | `-- demo.png
                              |-- misc
                              | `-- src
                              | `-- init.py
                              |-- src
                              | |-- contact.pdf
                              | `-- report.pdf
                              `-- src_data
                              |-- main.c
                              `-- manager.c






                              share|improve this answer














                              share|improve this answer



                              share|improve this answer








                              edited yesterday

























                              answered Jul 5 '18 at 17:25









                              FólkvangrFólkvangr

                              34014




                              34014





















                                  0














                                  If you have a directory foo that only contains a directory bar. (bar may contain other stuff).



                                  And you want to rename foo/barfoo, then do:



                                  mv -T foo foo.original
                                  mv -T foo.original/bar foo
                                  rmdir foo.original


                                  You can leave of the -T if your mv does not have this option, however it makes it safer.






                                  share|improve this answer





























                                    0














                                    If you have a directory foo that only contains a directory bar. (bar may contain other stuff).



                                    And you want to rename foo/barfoo, then do:



                                    mv -T foo foo.original
                                    mv -T foo.original/bar foo
                                    rmdir foo.original


                                    You can leave of the -T if your mv does not have this option, however it makes it safer.






                                    share|improve this answer



























                                      0












                                      0








                                      0







                                      If you have a directory foo that only contains a directory bar. (bar may contain other stuff).



                                      And you want to rename foo/barfoo, then do:



                                      mv -T foo foo.original
                                      mv -T foo.original/bar foo
                                      rmdir foo.original


                                      You can leave of the -T if your mv does not have this option, however it makes it safer.






                                      share|improve this answer















                                      If you have a directory foo that only contains a directory bar. (bar may contain other stuff).



                                      And you want to rename foo/barfoo, then do:



                                      mv -T foo foo.original
                                      mv -T foo.original/bar foo
                                      rmdir foo.original


                                      You can leave of the -T if your mv does not have this option, however it makes it safer.







                                      share|improve this answer














                                      share|improve this answer



                                      share|improve this answer








                                      edited Jul 6 '18 at 8:05

























                                      answered Jul 5 '18 at 18:15









                                      ctrl-alt-delorctrl-alt-delor

                                      12.4k52662




                                      12.4k52662





















                                          -2














                                          Simply use the move command :



                                          cd foo
                                          mv bar/* .


                                          As Jeff Schaller suggest, use



                                           shopt -s dotglob 


                                          before the mv command to move hidden files and use the option -i of mv if you want an interactive check before overwriting






                                          share|improve this answer

























                                          • In bash, consider setting dotglob so that this picks up “hidden” files.

                                            – Jeff Schaller
                                            Jun 21 '18 at 12:05











                                          • Note that this may overwrite files that have the same names in both folders, and that hidden files are skipped.

                                            – Kusalananda
                                            Jun 21 '18 at 12:06






                                          • 1





                                            Does not work, I get `Not possible because the directory is not empty"

                                            – Black
                                            Jul 5 '18 at 10:30















                                          -2














                                          Simply use the move command :



                                          cd foo
                                          mv bar/* .


                                          As Jeff Schaller suggest, use



                                           shopt -s dotglob 


                                          before the mv command to move hidden files and use the option -i of mv if you want an interactive check before overwriting






                                          share|improve this answer

























                                          • In bash, consider setting dotglob so that this picks up “hidden” files.

                                            – Jeff Schaller
                                            Jun 21 '18 at 12:05











                                          • Note that this may overwrite files that have the same names in both folders, and that hidden files are skipped.

                                            – Kusalananda
                                            Jun 21 '18 at 12:06






                                          • 1





                                            Does not work, I get `Not possible because the directory is not empty"

                                            – Black
                                            Jul 5 '18 at 10:30













                                          -2












                                          -2








                                          -2







                                          Simply use the move command :



                                          cd foo
                                          mv bar/* .


                                          As Jeff Schaller suggest, use



                                           shopt -s dotglob 


                                          before the mv command to move hidden files and use the option -i of mv if you want an interactive check before overwriting






                                          share|improve this answer















                                          Simply use the move command :



                                          cd foo
                                          mv bar/* .


                                          As Jeff Schaller suggest, use



                                           shopt -s dotglob 


                                          before the mv command to move hidden files and use the option -i of mv if you want an interactive check before overwriting







                                          share|improve this answer














                                          share|improve this answer



                                          share|improve this answer








                                          edited Jun 21 '18 at 12:14









                                          Kusalananda

                                          141k17262438




                                          141k17262438










                                          answered Jun 21 '18 at 12:03









                                          Jean-Paul SabatierJean-Paul Sabatier

                                          324




                                          324












                                          • In bash, consider setting dotglob so that this picks up “hidden” files.

                                            – Jeff Schaller
                                            Jun 21 '18 at 12:05











                                          • Note that this may overwrite files that have the same names in both folders, and that hidden files are skipped.

                                            – Kusalananda
                                            Jun 21 '18 at 12:06






                                          • 1





                                            Does not work, I get `Not possible because the directory is not empty"

                                            – Black
                                            Jul 5 '18 at 10:30

















                                          • In bash, consider setting dotglob so that this picks up “hidden” files.

                                            – Jeff Schaller
                                            Jun 21 '18 at 12:05











                                          • Note that this may overwrite files that have the same names in both folders, and that hidden files are skipped.

                                            – Kusalananda
                                            Jun 21 '18 at 12:06






                                          • 1





                                            Does not work, I get `Not possible because the directory is not empty"

                                            – Black
                                            Jul 5 '18 at 10:30
















                                          In bash, consider setting dotglob so that this picks up “hidden” files.

                                          – Jeff Schaller
                                          Jun 21 '18 at 12:05





                                          In bash, consider setting dotglob so that this picks up “hidden” files.

                                          – Jeff Schaller
                                          Jun 21 '18 at 12:05













                                          Note that this may overwrite files that have the same names in both folders, and that hidden files are skipped.

                                          – Kusalananda
                                          Jun 21 '18 at 12:06





                                          Note that this may overwrite files that have the same names in both folders, and that hidden files are skipped.

                                          – Kusalananda
                                          Jun 21 '18 at 12:06




                                          1




                                          1





                                          Does not work, I get `Not possible because the directory is not empty"

                                          – Black
                                          Jul 5 '18 at 10:30





                                          Does not work, I get `Not possible because the directory is not empty"

                                          – Black
                                          Jul 5 '18 at 10:30

















                                          draft saved

                                          draft discarded
















































                                          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%2f451081%2fhow-to-move-content-of-a-folder-to-current-folder%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

                                          Àrd-bhaile Cathair chruinne/Baile mòr cruinne | Artagailean ceangailte | Clàr-taice na seòladaireachd

                                          대한민국 목차 국명 지리 역사 정치 국방 경제 사회 문화 국제 순위 관련 항목 각주 외부 링크 둘러보기 메뉴북위 37° 34′ 08″ 동경 126° 58′ 36″ / 북위 37.568889° 동경 126.976667°  / 37.568889; 126.976667ehThe Korean Repository문단을 편집문단을 편집추가해Clarkson PLC 사Report for Selected Countries and Subjects-Korea“Human Development Index and its components: P.198”“http://www.law.go.kr/%EB%B2%95%EB%A0%B9/%EB%8C%80%ED%95%9C%EB%AF%BC%EA%B5%AD%EA%B5%AD%EA%B8%B0%EB%B2%95”"한국은 국제법상 한반도 유일 합법정부 아니다" - 오마이뉴스 모바일Report for Selected Countries and Subjects: South Korea격동의 역사와 함께한 조선일보 90년 : 조선일보 인수해 혁신시킨 신석우, 임시정부 때는 '대한민국' 국호(國號) 정해《우리가 몰랐던 우리 역사: 나라 이름의 비밀을 찾아가는 역사 여행》“남북 공식호칭 ‘남한’‘북한’으로 쓴다”“Corea 대 Korea, 누가 이긴 거야?”국내기후자료 - 한국[김대중 前 대통령 서거] 과감한 구조개혁 'DJ노믹스'로 최단기간 환란극복 :: 네이버 뉴스“이라크 "韓-쿠르드 유전개발 MOU 승인 안해"(종합)”“해외 우리국민 추방사례 43%가 일본”차기전차 K2'흑표'의 세계 최고 전력 분석, 쿠키뉴스 엄기영, 2007-03-02두산인프라, 헬기잡는 장갑차 'K21'...내년부터 공급, 고뉴스 이대준, 2008-10-30과거 내용 찾기mk 뉴스 - 구매력 기준으로 보면 한국 1인당 소득 3만弗과거 내용 찾기"The N-11: More Than an Acronym"Archived조선일보 최우석, 2008-11-01Global 500 2008: Countries - South Korea“몇년째 '시한폭탄'... 가계부채, 올해는 터질까”가구당 부채 5000만원 처음 넘어서“‘빚’으로 내몰리는 사회.. 위기의 가계대출”“[경제365] 공공부문 부채 급증…800조 육박”“"소득 양극화 다소 완화...불평등은 여전"”“공정사회·공생발전 한참 멀었네”iSuppli,08年2QのDRAMシェア・ランキングを発表(08/8/11)South Korea dominates shipbuilding industry | Stock Market News & Stocks to Watch from StraightStocks한국 자동차 생산, 3년 연속 세계 5위자동차수출 '현대-삼성 웃고 기아-대우-쌍용은 울고' 과거 내용 찾기동반성장위 창립 1주년 맞아Archived"중기적합 3개업종 합의 무시한 채 선정"李대통령, 사업 무분별 확장 소상공인 생계 위협 질타삼성-LG, 서민업종인 빵·분식사업 잇따라 철수상생은 뒷전…SSM ‘몸집 불리기’ 혈안Archived“경부고속도에 '아시안하이웨이' 표지판”'철의 실크로드' 앞서 '말(言)의 실크로드'부터, 프레시안 정창현, 2008-10-01“'서울 지하철은 안전한가?'”“서울시 “올해 안에 모든 지하철역 스크린도어 설치””“부산지하철 1,2호선 승강장 안전펜스 설치 완료”“전교조, 정부 노조 통계서 처음 빠져”“[Weekly BIZ] 도요타 '제로 이사회'가 리콜 사태 불러들였다”“S Korea slams high tuition costs”““정치가 여론 양극화 부채질… 합리주의 절실””“〈"`촛불집회'는 민주주의의 질적 변화 상징"〉”““촛불집회가 민주주의 왜곡 초래””“국민 65%, "한국 노사관계 대립적"”“한국 국가경쟁력 27위‥노사관계 '꼴찌'”“제대로 형성되지 않은 대한민국 이념지형”“[신년기획-갈등의 시대] 갈등지수 OECD 4위…사회적 손실 GDP 27% 무려 300조”“2012 총선-대선의 키워드는 '국민과 소통'”“한국 삶의 질 27위, 2000년과 2008년 연속 하위권 머물러”“[해피 코리아] 행복점수 68점…해외 평가선 '낙제점'”“한국 어린이·청소년 행복지수 3년 연속 OECD ‘꼴찌’”“한국 이혼율 OECD중 8위”“[통계청] 한국 이혼율 OECD 4위”“오피니언 [이렇게 생각한다] `부부의 날` 에 돌아본 이혼율 1위 한국”“Suicide Rates by Country, Global Health Observatory Data Repository.”“1. 또 다른 차별”“오피니언 [편집자에게] '왕따'와 '패거리 정치' 심리는 닮은꼴”“[미래한국리포트] 무한경쟁에 빠진 대한민국”“대학생 98% "외모가 경쟁력이라는 말 동의"”“특급호텔 웨딩·200만원대 유모차… "남보다 더…" 호화病, 고질병 됐다”“[스트레스 공화국] ① 경쟁사회, 스트레스 쌓인다”““매일 30여명 자살 한국, 의사보다 무속인에…””“"자살 부르는 '우울증', 환자 중 85% 치료 안 받아"”“정신병원을 가다”“대한민국도 ‘묻지마 범죄’,안전지대 아니다”“유엔 "학생 '성적 지향'에 따른 차별 금지하라"”“유엔아동권리위원회 보고서 및 번역본 원문”“고졸 성공스토리 담은 '제빵왕 김탁구' 드라마 나온다”“‘빛 좋은 개살구’ 고졸 취업…실습 대신 착취”원본 문서“정신건강, 사회적 편견부터 고쳐드립니다”‘소통’과 ‘행복’에 목 마른 사회가 잠들어 있던 ‘심리학’ 깨웠다“[포토] 사유리-곽금주 교수의 유쾌한 심리상담”“"올해 한국인 평균 영화관람횟수 세계 1위"(종합)”“[게임연중기획] 게임은 문화다-여가활동 1순위 게임”“영화속 ‘영어 지상주의’ …“왠지 씁쓸한데””“2월 `신문 부수 인증기관` 지정..방송법 후속작업”“무료신문 성장동력 ‘차별성’과 ‘갈등해소’”대한민국 국회 법률지식정보시스템"Pew Research Center's Religion & Public Life Project: South Korea"“amp;vwcd=MT_ZTITLE&path=인구·가구%20>%20인구총조사%20>%20인구부문%20>%20 총조사인구(2005)%20>%20전수부문&oper_YN=Y&item=&keyword=종교별%20인구& amp;lang_mode=kor&list_id= 2005년 통계청 인구 총조사”원본 문서“한국인이 좋아하는 취미와 운동 (2004-2009)”“한국인이 좋아하는 취미와 운동 (2004-2014)”Archived“한국, `부분적 언론자유국' 강등〈프리덤하우스〉”“국경없는기자회 "한국, 인터넷감시 대상국"”“한국, 조선산업 1위 유지(S. Korea Stays Top Shipbuilding Nation) RZD-Partner Portal”원본 문서“한국, 4년 만에 ‘선박건조 1위’”“옛 마산시,인터넷속도 세계 1위”“"한국 초고속 인터넷망 세계1위"”“인터넷·휴대폰 요금, 외국보다 훨씬 비싸”“한국 관세행정 6년 연속 세계 '1위'”“한국 교통사고 사망자 수 OECD 회원국 중 2위”“결핵 후진국' 한국, 환자가 급증한 이유는”“수술은 신중해야… 자칫하면 생명 위협”대한민국분류대한민국의 지도대한민국 정부대표 다국어포털대한민국 전자정부대한민국 국회한국방송공사about korea and information korea브리태니커 백과사전(한국편)론리플래닛의 정보(한국편)CIA의 세계 정보(한국편)마리암 부디아 (Mariam Budia),『한국: 하늘이 내린 한 폭의 그림』, 서울: 트랜스라틴 19호 (2012년 3월)대한민국ehehehehehehehehehehehehehehWorldCat132441370n791268020000 0001 2308 81034078029-6026373548cb11863345f(데이터)00573706ge128495

                                          Cannot Extend partition with GParted The 2019 Stack Overflow Developer Survey Results Are In Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern) 2019 Community Moderator Election ResultsCan't increase partition size with GParted?GParted doesn't recognize the unallocated space after my current partitionWhat is the best way to add unallocated space located before to Ubuntu 12.04 partition with GParted live?I can't figure out how to extend my Arch home partition into free spaceGparted Linux Mint 18.1 issueTrying to extend but swap partition is showing as Unknown in Gparted, shows proper from fdiskRearrange partitions in gparted to extend a partitionUnable to extend partition even though unallocated space is next to it using GPartedAllocate free space to root partitiongparted: how to merge unallocated space with a partition