Sponsored Content
Top Forums Shell Programming and Scripting Bash to select oldest folder in directory and write to log Post 302986224 by cmccabe on Tuesday 22nd of November 2016 08:37:27 AM
Old 11-22-2016
Bash to select oldest folder in directory and write to log

In the bash below the oldest folder in a directory is selected. If there are 3folders in the directory /home/cmccabe/Desktop/NGS/test and nothing is done to them (ie. no files deleted, renamed) then the bash correctly identifies f1 as the oldest. However, if something is done to the folder then the bash identifies f2 as the oldest. I am not sure why or how to prevent that from happening. Thank you Smilie.

folders in directory
Code:
f1
f2
f3

Bash

Code:
# oldest folder used analysis and version log created 
dir=/home/cmccabe/Desktop/NGS/test 
{ 
read -r -d $'\t' time && read -r -d '' filename
 } < <(find "$dir" -maxdepth 1 -mindepth 1 -printf '%T+\t%P\0' | sort -z ) 
printf "The oldest folder is $filename, created on $time and analysis done using v1.3 by $USER at $(date "+%D %r")\n" >> /home/cmccabe/Desktop/NGS/test/log 
echo "$filename"


Last edited by cmccabe; 11-22-2016 at 09:39 AM.. Reason: fixed format
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Oldest File In A Directory

I'm writing a script to find the oldest file in a directory. I know this can be done by using ls -rt | tail -1 but these are rather large directories and that can be somewhat slow since the script will be running constantly. Are there any other ways to do this that would be faster? I looked to... (2 Replies)
Discussion started by: bergerj3
2 Replies

2. UNIX and Linux Applications

Finding the oldest file in a directory without ls

I am trying to determine the oldest and most recent files in a huge directory. I am using an ls -tr statement outside my find statement. The directory is too big and I am getting an "arg list too long" error. Is there something I can put in my find statement that doesn't create a list to... (2 Replies)
Discussion started by: hiyofjord
2 Replies

3. Shell Programming and Scripting

Deleting the oldest file in a directory

Hey! I have found similar posts both here and on other sites regarding this, but I cannot seem to get my script to work. I want to delete the oldest file in a test directory if there are more than two files. My script is currently: #!/bin/bash MEPATH=/usr/local/bin/test FILECOUNT=`ls... (4 Replies)
Discussion started by: Immolation
4 Replies

4. Shell Programming and Scripting

Need help to write a script for moving the log files to some other folder

Hi Experts, I want to write a script, based upon the following requirement 1) I am having 5 application $ cd logs $ ls -l drwxr-xr-x 2 natraj nat 5.0K Sep 20 10:25 one drwxr-xr-x 2 natraj nat 5.0K Sep 20 10:39 two drwxr-xr-x 2 natraj nat 1.5K Sep 20 10:58... (4 Replies)
Discussion started by: natraj005
4 Replies

5. Shell Programming and Scripting

Bash to select panel then specific file in directory

I am using bash to prompt a user for a choice using: where a "y" response opens a menu with available panels that can be used. while true; do read -p "Do you want to get coverage of a specific panel?" yn case $yn in * ) menu; break;; * ) exit;; * ) echo... (6 Replies)
Discussion started by: cmccabe
6 Replies

6. Shell Programming and Scripting

Bash to select and save file in new directory

I am trying to select a file in bash and save it to a directory. The below does run but no selected file is saved. Thank you :). bash # select file printf "please select a file to analyze with entered gene or genes \n" select file in $(cd... (4 Replies)
Discussion started by: cmccabe
4 Replies

7. Shell Programming and Scripting

Bash to select oldest folder in directory automatically and log process

The `bash` below uses the oldest folder in the specified directory and logs it. The goes though an analysis process and creates a log. My problem is that if there are 3 folders in the directory folder1,folder2,folder3, the bash is using folder2 for the analysis eventhough folder1 is the oldest... (0 Replies)
Discussion started by: cmccabe
0 Replies

8. Shell Programming and Scripting

Bash to add folder to exsisting folders in directory

I am trying to create subdirectories in each folder in /home/cmccabe/Desktop/NGS/test/*. When I use echo I can see each folder in the directory, but I can not seem to add the commented out portion in bold. These are the sub-directories and sub-folders I am trying to add to each folder in... (1 Reply)
Discussion started by: cmccabe
1 Replies

9. Shell Programming and Scripting

Delete oldest folder based on folder named as date

Hi, I have a script doing backup to synology server, the script create new folder each day with the date as being folder name i.e. 2018-07-30. Just before creating the new folder I want the script to find the oldest folder from the list and delete it including its content. for example... (3 Replies)
Discussion started by: humble_learner
3 Replies

10. Shell Programming and Scripting

Bash to check directory and create missing folder from file

In the below bash I am trying to ensure that all folders (represented by $folders) in a given directory are created. In the file f1 the trimmed folder will be there somewhere (will be multiple trimmed folders). When that trimmed folder is found (represented by $S5) the the contents of $2 printed... (19 Replies)
Discussion started by: cmccabe
19 Replies
folder(1mh)															       folder(1mh)

Name
       folder - set folder or display current folder name

Syntax
       folder [ +folder ] [ msg ] [ options ]

Description
       The command lets you set the current folder, or display information about it.  It can also be used to manage the folder stack.

       If  you	use  the command without a +folder argument, information about the current folder is displayed on the screen.  If you use with the
       +folder argument, the named folder is set to be the current folder.  Information about the named folder is also displayed on the screen.

       If you use with the msg argument, it will set the specified message to be current.  Information on the current folder  is  also	displayed.
       You can use both the +folder and msg arguments together in one command.

       If  you	specify  a +folder that does not exist, you are asked whether you want to create it.  This is a good way to create an empty folder
       for later use.

       The display is identical whether you set the folder or display the contents of the current folder.  The following example shows the type of
       display	that  is  produced.  The display lists the current folder, the number of messages in it, the range of the messages (low-high), and
       the current message within the folder.  It also flags extra files if they exist.
			inbox+ has   16 messages (   3-  22); cur=  15.

Options
       -all	 Displays information on all the folders in your Mail directory.  The folders are listed alphabetically, with a line  of  informa-
		 tion given for each folder.  This is identical to the display produced by the command.  See

       -fast
       -nofast	 Lists only the name of the current folder, with no additional information.  This is faster because the folders need not be read.

       -header
       -noheader Displays a header produced by the system, in addition to the information about the current file.  This header is identical to the
		 one that appears at the top of the listing produced by or by The header can be suppressed by using the -noheader option.

       -help	 Prints a list of the valid options to this command.

       -list
       -nolist	 Lists the contents of the folder-stack.  No +folder argument is allowed with this option.  The contents of the  folder-stack  are
		 listed automatically when the -pop or -push option is used.  This corresponds to the operation in the C-shell.

       -pack
       -nopack	 Re-numbers  messages  in  the	folder.   Messages  are  re-numbered sequentially, and any gaps in the numbering are removed.  The
		 default operation is -nopack, which does not change the numbering in the folder.

       -pop	 Discards the top of the folder-stack, after setting the current folder to that value.	No +folder argument is allowed	with  this
		 option.  This corresponds to the operation in the C-shell; see The -push and -pop options are mutually exclusive: the last occur-
		 rence of either one overrides any previous occurrence of the other.

       -push	 Pushes the current folder onto the folder-stack, and makes the +folder argument into the  current  folder.   If  +folder  is  not
		 given,  the  current folder and the top of the folder-stack are exchanged.  This corresponds to the operation in the C-shell; see
		 The -push switch and the -pop switch are mutually exclusive: the last occurrence of either one overrides any previous	occurrence
		 of the other.

       -recurse
       -norecurse
		 Lists	each folder recursively.  Information on the current folder is displayed, followed by information on any sub-folders which
		 it contains.

       -total
       -nototal  Displays only the total number of messages and folders in your Mail directory.  This option does not print any information  about
		 the current folder.  It can be suppressed using the -nototal option.

       The defaults for are:

	      +folder defaults to the current folder
	      msg defaults to none
	      -nofast
	      -noheader
	      -nototal
	      -nopack
	      -norecurse

Examples
       The following example shows how can be used to change the current folder to and display information on that folder.  The plus sign (+) next
       to indicates that it is now the current folder.
       % folder +test
			 test+ has    2 messages (   1-   2); cur=   2.

       The next example shows the display produced by using the -all option to
	 Folder      # of messages (  range  ); cur  msg  (other files)
	   V2.3  has	3 messages (   1-   3).
	 adrian  has   20 messages (   1-  20); cur=   2.
	  brian  has   16 messages (   1-  16).
	  chris  has   12 messages (   1-  12).
	copylog  has  242 messages (   1- 242); cur= 225.
	  inbox+ has   73 messages (   1- 127); cur= 127.
	    int  has	4 messages (   1-   4); cur=   2  (others).
	   jack  has   17 messages (   1-  17); cur=  17.

		    TOTAL= 387 messages in 8 folders.

       This display is identical to that produced by the command.  See for an explanation of this display.

       The next example shows how to use to create an empty folder:
       % folder +test
       Create folder "$HOME/Mail/test"? y
		 test+ has no messages.

       You can also use to create an empty sub-folder within an existing folder.  The following example shows how you can create a  sub-folder	in
       the folder
       % folder +test/testtwo
       Create folder "$HOME/Mail/test/testwo"? y
		 test/testtwo+ has no messages.
       See for more details of sub-folders.

Files
       The user profile.

Profile Components
       Path:		 To determine your MH directory
       Current-Folder:	 To find the default current folder
       Folder-Protect:	 To set mode when creating a new folder
       Folder-Stack:	 To determine the folder stack
       lsproc:		 Program to list the contents of a folder

See Also
       csh(1), refile(1mh), mhpath(1mh)

																       folder(1mh)
All times are GMT -4. The time now is 01:02 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy