Linux move directory content

Linux Move Directory Command

I am new to Linux and command line. How do I move a directory under Linux operating systems?

To move SOURCE directory to a DEST directory use the mv command as follows:

In this example, move /home/vivek/data/ directory to /nas/home/vivek/archived/ directory:
$ mv /home/vivek/data/ /nas/home/vivek/archived/
OR
$ cd /home/vivek
$ mv data/ /nas/home/vivek/archived/
To get verbose output (explain what is being done), type:
$ mv -v /home/vivek/data/ /nas/home/vivek/archived/

  • No ads and tracking
  • In-depth guides for developers and sysadmins at Opensourceflare✨
  • Join my Patreon to support independent content creators and start reading latest guides:
    • How to set up Redis sentinel cluster on Ubuntu or Debian Linux
    • How To Set Up SSH Keys With YubiKey as two-factor authentication (U2F/FIDO2)
    • How to set up Mariadb Galera cluster on Ubuntu or Debian Linux
    • A podman tutorial for beginners – part I (run Linux containers without Docker and in daemonless mode)
    • How to protect Linux against rogue USB devices using USBGuard

Join Patreon

How do I Move Multiple Directories?

Use the following syntax to move dir1 and dir2 to /path/to/dest/ directory:
$ mv -v dir1 dir2 /path/to/dest/
$ ls -l /path/to/dest/
OR use the following syntax:
$ mv -v /home/vivek/dir1/ /home/vivek/dir2/ -t /nas/home/vivek/archived/

🐧 Get the latest tutorials on Linux, Open Source & DevOps via

Источник

Linux command to move a directory

My old and new directory have same folders and files inside.

mv: cannot move `./xxxxxx’ to a subdirectory of itself

How can I move it?

5 Answers 5

You should use mv -if old/* new/ without the trailing * .

This is because it unrolled to

i.e. move everything into new/baz

This is not what you wanted.

It works. What are You trying to achieve? Could You please write a short example of what the input data should look like and what the output data should look like? The truth is I have no idea what You are trying to do 🙂 Help me help You.

note that mv a/* b/ don’t move files .* (file name start with ‘.’) in a/ to b/

If you are copying from an ext2/3/4 file system to a FAT32 file system, and a filename has an invalid character for FAT32 naming conventions, you get this terribly annoying and incorrect as hell error message. How do I know? I wrestled with this bug — yes, it’s a KERNEL BUG — for 6 hours before it dawned on me. I thought it was a shell interpreter error, I thought it was an «mv» error — I tried multiple different shells, everything. Try this experiment: on an ext file system, «touch ‘a:b'» them «mv» it to a FAT32 file system. Try it, you’ll enjoy (hate) the results. The same is true for ‘ ‘ (\074 and \076).

Читайте также:  Acer не регулируется яркость windows 10

Thanks for «man mv» — that’s a real big help, don’t quit your day job.

Might be you got the answer but above answer is not working for me. and finally lots of researching I got the answer. (Issue is due to files-ownership)
and just put sudo before the command and its working. 🙂 Same thing for cp and mv command.

Not the answer you’re looking for? Browse other questions tagged linux command-line mv or ask your own question.

Hot Network Questions

Subscribe to RSS

To subscribe to this RSS feed, copy and paste this URL into your RSS reader.

site design / logo © 2021 Stack Exchange Inc; user contributions licensed under cc by-sa. rev 2021.10.8.40416

By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.

Источник

How to move all files and folders via mv command [duplicate]

How can I move all files and folders from one directory to another via mv command?

7 Answers 7

(D) to include dot-files.

This works for me in Bash (I think this depends on your shell quite a bit. )

This works for me in Bash 4.2.46, it moves all files and folders including hidden files and folders to another directory

Notice that .[^.]* means all hidden files except . and ..

I’d say it’s a bit boring, but really bullet-proof (GNU) way is:

cd /SourceDir && find ./ -maxdepth 1 -mindepth 1 -exec mv -t /Target/Dir <> +

P. S. Now you can possibly see why lots of people do prefer Midnight Commander, though.

If you only want to do a cut and paste-like action there is a simple way that worked for me:

It will move the folder named dir_source located in /media to the directory $HOME/Documents/

yet another way just for the heck of it (because I love convoluted ways to do things I guess)

the -Q and the -A are not POSIX, however the -A is fairly prevalent, and to not use the -Q you need to change the IFS (which then means you don’t need the eval but need to quote the variable)

Not the answer you’re looking for? Browse other questions tagged linux command rename or ask your own question.

Linked

Hot Network Questions

site design / logo © 2021 Stack Exchange Inc; user contributions licensed under cc by-sa. rev 2021.10.8.40416

By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.

Источник

How do I move all files from one folder to another using the command line?

I would like to know how could I move all files from a folder to another folder with a command line.

Let’s say I’m in my Downloads folder and there are a 100 files that I would like to move to my Videos folder, without having to write all the files name.

Читайте также:  Основные сетевые службы windows

12 Answers 12

Open a terminal and execute this command:

It will move all the files and folders from Downloads folder to Videos folder.

To move all files, but not folders:

If you are interested in moving all files (but not folders) from Downloads folder to Videos folder, use this command

To move only files from the Download folders, but not from sub-folders:

If you want to move all files from the Downloads folder, but not any files within folders in the Download folder, use this command:

here, -maxdepth option specifies how deep find should try, 1 means, only the directory specified in the find command. You can try using 2 , 3 also to test.

See the Ubuntu find manpage for a detailed explanation

/Videos/») won’t move dot files.

/Videos can be more efficiently done with -exec mv -t

/Videos/ does not work for hidden files

It will move all the files including subfolders in the directory you want to mv . If you want to cp (copy) or rm (remove) you will need the -r (recursive) option to include subfolders.

/ in the prefix of the folder names doesn’t always work (doesn’t work on bash and git atleast)

For the simple case:

If you want to move dot (hidden) files too, then set the dotglob shell option.

This leaves the shell option set.

For one time dotglob use, run the commands in a subshell:

/Videos) only moves (cuts) the contents (including the hidden files). In this case, both the origin and destination folders must exist already. At the end, the origin directory becomes empty.

It’s possible by using rsync , for example:

-a , —archive : Archive mode; equals -rlptgoD (no -H , -A , -X ).

-u , —update : Skip files that are newer on the receiver.

—remove-source-files This tells rsync to remove from the sending side the files (meaning non-directories) that are a part of the transfer and have been successfully duplicated on the receiving side.

If you’ve root privileges, prefix with sudo to override potential permission issues.

To move a directory with or without content to its new name just like how you would use the mv command to rename a file:

  • -T treats the destination as a normal file
  • dir1 is the original name of the directory
  • dir2 is the new name of the directory

NB: dir2 doesn’t have to exist.

I hope this saves someone a lot of time, as a noob, before this, I would create a directory with the new name and then move the contents of the directory to the directory created earlier.

Источник

Move files and folders recursively on Linux

How do I move the contents of /public-back/templates recursively with permissions into /public/templates ?

8 Answers 8

Unless I am misunderstanding the question, this would work:

Also, unless you have a huge list of files, adding -i will ask before it overwrites anything, which add some safety when using wildcards like * .

The man page for cp states:

Читайте также:  Как установить steam для linux mint

When moving items from my thumb drive to my OSMC system, I’ve found the following very useful:

Explanation on how it works below.

BTW, Don’t forget to add a backslash before any spaces in the source or destination directory names (see above).

Effectively, you are finding all files and all folders and moving them one by one (or if a directory gets found first, you are moving that directory and the contents in it). This starts a new process for each move and is very inefficient. Only use this when the regular commands fail.

So create hard links in the destination directory and remove the source dir. ‘mv’ simply will not work in your case, and in general works only when source dir and dest have no common subtrees.

Note that I’m assuming that the word ‘move’ in the question means that the source dir should be gone after the operation.

mv doesn’t seem to do this. But you can use this little trick, works like a charm:

and preserves permissions and all.

Note: none of the above worked for me, that’s why this workaround.

It is possible to move instead of copy with rsync by using the —remove-source-files argument. This will preserve properties such as permissions and dates modified. It has the added benefit of checking whether files don’t need to be moved to the target directory (i.e., if a newer file with the same name already exists there).

Of course you can also copy the files and remove the original directory.

This is my recommended parameters for rsync but there are other arguments for preserving various properties or handling links and compression/encryption of large files. This command also supports copying to remote file systems via ssh tunnels.

As noted above, on the same filesystem mv is faster than cp . By example, the following preserves timestamps and ownerships, and recursively moves directories and files including hidden files and directories.

Initial conditions:

  • note ownership of dir02/* is root:victoria

Move those files, directories:

This appears to preserve:

  • timestamps
  • recursively moves files, directories (including hidden files, directories)
  • preserves ownerships

After the move:

None of the answers in this thread fit my usecase, so I came up with one on my own as a shell script.

At the heart of it is this function:

Which you could invoke like so (for the OP usecase):

If source is a file or a directory for which the destination does not exist yet, it simply moves it with mv -u . If source is a directory for which the destination already exists, it iterates through its contents and recursively performs the same check followed by move|recurse with each of its members.

I used -u because I only needed old files freshened and newer files untouched, but you could replace it with -f for an unconditional move or -i for an interactive one. Or not change anything and simply rm -rf your source after the script is done moving things.

[A slightly modified repost from Server Fault]

Источник

Оцените статью