Can Someone Please Help Me Build A Script?

I'm in the need of building a script to clean up my media library. I've been PVR'ing for years now and it's time to clean things up. For example, my TV Shows are saved as such:

/media/storage/Show Name/Season 1/Show Name - S01E01 - Episode Name.mp4

Over the years I've created a bunch of subdirectories further than that and I want to go through and clean those out. For example, the following directory might exist:

/media/storage/Show Name/Season 1/subtitles

If I use the find command, with -type d and -maxdepth 4, I have discovered that the subdirectory I want to delete is in the 4th level. There should be nothing valid in the 4th level and okay to delete.

I don't really know where to start. I tried using the find command with -mindepth 4 but that doesn't seem to work as I would expect. Basically, I want to scan through the library, then I want to test to make sure that the directory isn't "Season XX" and if it is a subdirectory within Season X then I would like to delete that subdirectory.

Any ideas how I can accomplish this?

FYI: I'm using Korrora 21 with BASH.


Similar Content



Script To Recursively Enter Subdirectories And Rename Files Sequentially From Scratch

I am new to Bash scripting.

I have a main directory called Photos which has many subdirectories like People, Places and Things. Each of these subdirectories is populated by other subdirectories and lots of JPG photo images.

The digital cameras name the files in a way that is difficult to manage with web hosting.

I would like to go to each directory and subdirectory and rename the photos 1.jpg, 2.jpg, 3.jpg, etc. so that I can use a simple XML template to access them by specifying only a hosting directory.

I tried to use the following script:

#! /bin/bash

cd /home/paul/test

find . -name "*.jpg" -print0 | rename -v 's/.+/our $i; sprintf("%d.jpg", 1+$i++)/e' * -vn

exit 0

It successfully renames all of the files in all of the directories, but it does not restart the numbering for each new subdirectory. So first it goes through Photos and renames the three JPG files there 1.jpg, 2.jpg and 3. jpg, and then it opens the first subdirectory People and names the three JPG files there 4.jpg, 5.jpg and 6.jpg. Next it moves to the next subdirectory and continues sequential renaming until it is done.

I want it to restart sequential renaming with each new subdirectory, so that after renaming the three JPG files in Photos to 1.jpg, 2.jpg and 3.jpg, it moves to the first subdirectory and renames the JPG files there starting with 1.jpg again.

That way I use the links 1.jpg, 2.jpg, 3.jpg, etc in the XML template and just change the directory name to download the photos from the web.

Thanks for any help you can give me.

Is It Food Have Find Command Running In Cron Every Day Once To Delete Older Files

I need to clean-up some folder. I have a cron job which uses find command to find and delete 25 days older file.

Code:
find $FOLDER_PATH/$FOLDER -depth -regex  ^$FOLDER_PATH/$FOLDER/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ -type d -mtime +25  -exec ls -ld {} \;   >> /tmp/deleted_folders.log

When this running it occupies 1-3% of cpu. And it may take longer time based on the folder size.

Is it ok to have find command running as cron job ?

Chmod Command

Hello everyone!

Can anyone help me in how to work the chmod command?
Suppose that you have a directory of udir12, a subdirectory udir121 (under udir12) and a file called file131 under directory udir121.

How do you change permission for the directory udir12 and all subdirectory and files to 770?

Can anyone help me out please!!!

Thanks
Carlos

How To Copy File From Remote Host To Local Host Then Delete From Remote Host

I have an expect script to SSH to a remote host and obtain some user inputs and information about the server/network configuration. The responses are saved in a text file that I then need to copy to my local host so that I can read the lines into variables for use in the parent shell script.

Is there a way to do this without needing to enter the username and password for the local host to use function scp? I have tried the following in my expect script to no avail:
Code:
spawn scp $usr@$host:$flnm .
expect {
	-re "(.*)assword:" { 
		send -s "$pswd\r"
	}
}

I have also tried to directly scp the file and enter the username and password to try to debug the issue, and that doesn't work either:
Code:
spawn scp file.txt user@host:file.txt
expect {
	-re "(.*)assword:" {
		send -s "password\r"
	}
	"you sure you want to continue connecting" {
		send -s "yes\r"
		exp_continue
	}
}

In both scenarios I have used exp_internal 1, and there are no errors. But I do not end up with the file on my local host.

Following the copy, I would like to delete the file from the remote host. Any suggestions on how to accomplish this?

Waf Command In Ns3

I need to run the script qos-test of wimax with the "./waf --run qos-test" command but an error says that ./waf doesn not exist. waf do exist at the high level on ns3 but soesnot exist at "ns-allinone-3.21/ns-3.21/src/wimax/test"
what should I do?

Find 30 Days Old And Delete Prints Error Msg File Not Found After Deleting It

I have a shell script to find folders which are 25 days older and delete it, and put the deleted folder details into log file like this

Code:
 find /ahome/xxx/$FOLDER -type d -mtime +25  -exec ls -ld {} \;  -exec rm -rf {} \;  >> mylogfile.log

after running this command it deletes the folder and logs the folder deleted. But also print error msg
Code:
find: /ahome/prksh/dir/test: No such file or directory

How to suppress the error msg

Best Practices To Get One Linux Command To Do Something Else Afterwards?

Hello all,

As title says.... whats the best way of getting linux to do another command after the first one?

e.g. Say I type "find . -iname "*.dll" this displays a list of all the dlls in a folder/subdirectory. ... then i wanted to copy these files, or du them, or other commands.

The three things i am aware of is:

Pipe |
awk
xargs

Which one is the most useful/standard/best practice to use?

Thanks

Need A Shell Scrit Urgent Description In Message

HI Everyone, need a shell script which checks size of a directory and if it gets greater than 1 GB then delete all the files in it.

ex: dir : /var/log/

/log contains numerous .log files, so script should delete .log files always when /log size is greater than 1 GB , it should not delete the directory

Grub Directory Has Disappeared - Can't Reinstall Grub

I have tried installing a Ubuntu OS onto a partition (sda3).
When I had difficulties with the install, I decided to delete everything from the partition.

But now when I boot the computer, I get taken to the 'grub rescue' prompt.
I have tried to find grub in my other partitions (sda1 and sda2).
However, the command 'ls (hd0,msdos1)/' for example, does not show a grub directory.
It must've transferred grub to sda3 somehow and now I've deleted it.

I have debian live USB and am trying to install grub with:
Code:
apt-get install-grub /dev/sda

But I get the error message:
Code:
bash: grub-install: command not found

So now I don't know what's going on. Can anyone please help?

Help With Music Player And USB Flash Storage

I keep my Music on a USB flash drive. I do not have room on my laptop to store my mp3 library so this is not an option. Whenever, I remove the flash drive (or restart my computer, i think) my music player (rhythmbox currently) forgets where the music is stored. I have to go through reimporting my whole music library which is time consuming and tedious. I imagine that my music player can't find the files because the flash drive gets mapped to a different mount point or something after restarting or removing the drive.

TL;DR
How can I setup my laptop so that my music player can find my music library on a usb flash drive without needing to constantly re-import my library?

Also, I have the same question to syncing to cloud storage. How can I automatically sync flash storage to the cloud?