Moving files to organize or to simply archive is part of a sysadmin life.
In Linux, ls -1 (number one not small letter L) command means list the files but only show the filenames.
The output of ls -1 can be utilized as an input to mv to move the files, since mv requires a filename to be move plus a destination where to move the files.
Here's a simple command to do it with a few parameters of course:
ls -1 | xargs -d '\n' -I {} mv -- {} /path/to/destination/
Above move whatever files it can find on the path; where the command is run and it's a command that will also move files even though it has space or tab on the filename of the files.
Below is a revised command to move all .txt files on the current directory or on the path where the command is executed.
ls -1 *.txt | xargs -d '\n' -I {} mv -- {} ./archive_folder/
The mv --, the -- is a safety precaution or a mechanism in order not to misinterpret any filenames with dashes, for example if there is a file like:
-file.txt; mv can misbehave or fail because -file.txt can be treated as a parameter for the mv command but with -- mv is safe.
It's important to always test the command on a dummy environment before running on the production, even though the command is self-explanatory; it's a good practice to test it to make sure it will work the way it is expected and no other surprising scenarios.
Here's a screenshot on how I test the above command:
That's it, keep learning and enjoy doing task on command line.
Jeremiah 29:11 “For I know the plans I have for you… plans to give you a future and a hope.”
Keep going, keep trusting, keep the faith; Jesus will always be with you. Call upon Him.
https://soulrefresh.netlify.app

Comments
Post a Comment