If you want to segregate files by the file times as shown in man stat, you can use 'find'. There are two flavors there.
The mtime/time/atime arguments are real time clock sensitive and day-granular, but fine for gross bracketing. You can say
Code:
-ctime +3 -ctime -5
to get 2 days 3-d days ago to the second.
The newer works with the modification time and a marker file per -newer, so you can say
Code:
-newer a ! -newer b
to get files in any exact range in seconds. See man touch for creating and resetting the mtimes of files.
I was at a loss for better tools to access stat() data, so I wrote one, but the latest version, with arguments for every stat element, seems to be hiding. It can take in a stream of file names and spits them out annotated with the UNIX mtime, in integer seconds since 1970 started, GMT:
Code:
$ cat mysrc/mystat.c
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
static void psf( char * buf )
{
struct stat s ;
if ( 0 > stat( buf, &s ) )
{
perror( buf );
return ; ;
}
if ( 0 > printf( "%u\t%s\n", s.st_mtime, buf ) )
{
if ( !ferror( stdout ) )
exit( 0 );
perror( "stdout" );
exit( 1 );
}
}
int main( int argc, char **argv )
{
char buf[PATH_MAX + 2];
char *cp ;
int i ;
int clf = 0 ;
for ( i = 1 ; i < argc ; i++ )
{
clf ++ ;
psf( argv[i] );
}
if ( !clf ) while ( fgets( buf, sizeof buf, stdin ) )
{
if ( !( cp = strchr( buf, '\n' ) ) )
{
fprintf( stderr, "File path too long: '%s'\n", buf );
continue ;
}
*cp = NULL ;
psf( buf );
}
if ( !ferror( stdin ) )
exit( 0 );
perror( "stdin" );
exit( 1 );
}
Will any body help me by writing a script in unix to the find out the size of the Main folder which has some 5 to 6 subfolders which in turn has some file in each of these subfolders
regards
victorvvk (2 Replies)
Hi, I have a directory PRIVATE in which I have several directories and each of these have several files. Therefore, I need to find those files by size and date to back up those files in another directory.
I don't know how to implement this shell script using ''find''.
appreciate any... (1 Reply)
Hello all
I wander if I make for example " ls -l "
And it gives me all the files in the directory with the additional info like data size and privileges
But what if I like to filter the stout result for example by date
When I try to do:
echo "`ls -l`" | grep "Jan 12"
it gives me the... (2 Replies)
Hi in my shell script I have to do this
1. there is a file called testing.txt in /home/report directory
If the file size is 0(zero) and date is today's date, then I have to print
"Successful" else "Failed".
2. There is a file called number.txt which will have text only one line like this... (10 Replies)
hi,
please give me adivse .how to find the folder size with created created date .
eg:
i have directore and in that sub directoties and so on..
/home/mud/abc/dcb/
for this i want output like this
path size date
-------------------------------------------... (3 Replies)
Hi all,
*I use Uwin and Cygwin emulator.
I´m trying to search for all text files in the current folder (C/Files) and its sub folders using
find -depth -name "*.txt"
The above command worked for me, but now I would like to copy all found text files to a new folder (C/Files/Text) with ... (4 Replies)
Hi All,
I have a process which after some time continues move a files to some folder(say the name of the folder is logdir)
What i am trying to do is as the files are coming to the logdir folder, I want the latest updated time and date
of the folder in PERL. (1 Reply)
Hi,
The blow code does not yeild any output.
find . -name "*.jar" -o -name "*.ksh" -o -name "*.properties" -name "*.war" -o -name "*.ear" -o -name "*.sh" -o -name "*.cfg" -exec ls -l {} \;
I wish to print the filename filesize filedate in HP-UX.
Can anyone help ? (9 Replies)
I am trying to work on a script where it is a *(star) delimited file has a multiple lines starts with RTG and 3rd column=TD8 I want to substring the date part and
I want to replace with currentdate minus 15 days. Here is an example. iam using AIX server
$ cat temp.txt
RTG*888*TD8*20180201~... (1 Reply)
Discussion started by: Shankar455
1 Replies
LEARN ABOUT FREEBSD
fdevname_r
DEVNAME(3) BSD Library Functions Manual DEVNAME(3)NAME
devname -- get device name
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <sys/stat.h>
#include <stdlib.h>
char *
devname(dev_t dev, mode_t type);
char *
devname_r(dev_t dev, mode_t type, char *buf, int len);
char *
fdevname(int fd);
char *
fdevname_r(int fd, char *buf, int len);
DESCRIPTION
The devname() function returns a pointer to the name of the block or character device in /dev with a device number of dev, and a file type
matching the one encoded in type which must be one of S_IFBLK or S_IFCHR. To find the right name, devname() asks the kernel via the
kern.devname sysctl. If it is unable to come up with a suitable name, it will format the information encapsulated in dev and type in a
human-readable format.
The fdevname() and fdevname_r() function obtains the device name directly from a file descriptor pointing to a character device. If it is
unable to come up with a suitable name, these functions will return a NULL pointer.
devname() and fdevname() return the name stored in a static buffer which will be overwritten on subsequent calls. devname_r() and
fdevname_r() take a buffer and length as argument to avoid this problem.
EXAMPLES
int fd;
struct stat buf;
char *name;
fd = open("/dev/tun");
fstat(fd, &buf);
printf("devname is /dev/%s
", devname(buf.st_rdev, S_IFCHR));
printf("fdevname is /dev/%s
", fdevname(fd));
SEE ALSO stat(2)HISTORY
The devname() function appeared in 4.4BSD. The fdevname() function appeared in FreeBSD 8.0.
BSD February 22, 2005 BSD