Spyke

Syndicated from the fediverse. Read and engage on the original instance.

View original on whiskers.bim.boats
linux·Linuxbyappel

package to move and manage folders?

Hi,

I'm looking for a package that will allow me to configure some rules for moving folders and then watch a folder and automatically move folders or files that match rules to a certain other directory. Does something like this exist?

The use case is that I have data being saved to a single directory by other devices, and then I would like to reorganize it based on the file or folder name.

Or anyone have any other ideas of how to do this?

View original on whiskers.bim.boats
23

9 replies

You can use find utility for that. I'm not at Linux machine right now, so maybe I can make mistake in commands, but something like this should work:

find /path/to/data/folder -name "type1name" -exec mv -t /path/to/dest/folder {} +

In this example, command find every file containing "type1name" in its name in folder /path/to/data/folder and move it into /path/to/dest/folder.

So if you have folder "~/data/all_data" containing files like "temperature_2023-06-30.csv", " temperature_2023-06-29.csv", "power_2023-06-30.csv" and "power_2023-06-29.csv", do:

mkdir ~/data/temperature

mkdir ~/data/power

find ~/data/all_data -name "temperature*" -exec mv -t ~/data/temperature {} +

find ~/data/all_data -name "power*" -exec mv -t ~/data/ {} +

More, you can tweak it into for examplee filtering according to current date and run that script every day.

3

I guess that there should be some tool exactly for that but I couldn't find it quickly

  • You might want to take a look at filebeat, maybe that will fit your use-case. I take the part "automatically move folders or files that match rules to a certain other directory" verbatim and think it's not. Filebeat is rather to ingest logs and stream these elsewhere
  • you could configure rules for your files in logrotate but it can only be executed hourly
  • or just write a bash function/script that does the move/decides where to move the file to (executing logrotate should work too) and use one of these:
1

If you don't find the application you're looking for maybe you can write a bash script that runs on a Cron job. It's possible if you're just talking about file/folder names

1

You reached the end

package to move and manage folders? | Spyke