Find the age of the oldest file in one line or return zero The 2019 Stack Overflow Developer Survey Results Are InDetermining number of files in a directory without counting themCheck for subdirectoryAdd mtime to grep -c output and sort the output by mtimehow to find files of current date in remote server and copy those file to local server using rcp using shell scripting (ksh)?Search for files that contain a string and list their names sorted by the modified daterecursive search and print most recent tar.gz file in each dirFind and rm command deleted the files inside the directory and the directory itselfHow do I change the sorting method of files used by asterisk (*) in bash?Find files, print creation date and file namescp <source>:<filepath> <dest> works from command line, but cp: cannot stat error from script. Why?
What do the Banks children have against barley water?
Where does the "burst of radiance" from Holy Weapon originate?
How to deal with fear of taking dependencies
Does a dangling wire really electrocute me if I'm standing in water?
How to manage monthly salary
How can I create a character who can assume the widest possible range of creature sizes?
Does it makes sense to buy a new cycle to learn riding?
Lethal sonic weapons
I see my dog run
Can't find the latex code for the ⍎ (down tack jot) symbol
How come people say “Would of”?
Unbreakable Formation vs. Cry of the Carnarium
Access elements in std::string where positon of string is greater than its size
Where to refill my bottle in India?
Limit the amount of RAM Mathematica may access?
What is a mixture ratio of propellant?
Is three citations per paragraph excessive for undergraduate research paper?
Time travel alters history but people keep saying nothing's changed
How are circuits which use complex ICs normally simulated?
How can I fix this gap between bookcases I made?
Does duplicating a spell with Wish count as casting that spell?
How to create dashed lines/arrows in Illustrator
Springs with some finite mass
What does "sndry explns" mean in one of the Hitchhiker's guide books?
Find the age of the oldest file in one line or return zero
The 2019 Stack Overflow Developer Survey Results Are InDetermining number of files in a directory without counting themCheck for subdirectoryAdd mtime to grep -c output and sort the output by mtimehow to find files of current date in remote server and copy those file to local server using rcp using shell scripting (ksh)?Search for files that contain a string and list their names sorted by the modified daterecursive search and print most recent tar.gz file in each dirFind and rm command deleted the files inside the directory and the directory itselfHow do I change the sorting method of files used by asterisk (*) in bash?Find files, print creation date and file namescp <source>:<filepath> <dest> works from command line, but cp: cannot stat error from script. Why?
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
I want to find the age of the oldest file in a certain directory or return 0 if there aren't any files in this directory. I also need a one-line command doing it. So far this is my command for finding the age in seconds of the oldest file in the directory:
expr $(($(date +%s) - $(stat -c %Y $(ls -lt /path/to/dir/ | tail -1 | awk 'print $NF'))))
The problem is that if there are no files it is returning the following error:
$ expr $(($(date +%s) - $(stat -c %Y $(ls -lt /path/to/dir/ | tail -1 | awk 'print $NF'))))
stat: cannot stat ‘0’: No such file or directory
-bash: 1554373460 - : syntax error: operand expected (error token is "- ")
So in this case I want the command to return just 0 and to suppress the error printout.
shell-script files directory
add a comment |
I want to find the age of the oldest file in a certain directory or return 0 if there aren't any files in this directory. I also need a one-line command doing it. So far this is my command for finding the age in seconds of the oldest file in the directory:
expr $(($(date +%s) - $(stat -c %Y $(ls -lt /path/to/dir/ | tail -1 | awk 'print $NF'))))
The problem is that if there are no files it is returning the following error:
$ expr $(($(date +%s) - $(stat -c %Y $(ls -lt /path/to/dir/ | tail -1 | awk 'print $NF'))))
stat: cannot stat ‘0’: No such file or directory
-bash: 1554373460 - : syntax error: operand expected (error token is "- ")
So in this case I want the command to return just 0 and to suppress the error printout.
shell-script files directory
2
Out of curiosity, why does it have to be in one line? It's much less readable & maintainable that way.
– Jeff Schaller♦
Apr 4 at 10:30
I am passing this line to specialized software. Then according to the output of the command, I can trigger an alarm and if I make it on more than a single line, I need to write more complex logic. The idea is to check a specific directory where there should not be any files for more than 20 seconds, I want to trigger an alarm if the age of the oldest file is more than 30 seconds.
– Georgе Stoyanov
Apr 4 at 10:39
also I would be very happy if you have any ideas, how I can simplify my command for finding the age of the oldest file
– Georgе Stoyanov
Apr 4 at 10:41
ls -lt | tail -1
will give you the oldest file; you can parse out the date or go through thestat
stuff without having to do a single line shell loop
– mpez0
Apr 4 at 20:06
@mpez0 this is exactly what I am doing, check my original post.
– Georgе Stoyanov
Apr 5 at 7:52
add a comment |
I want to find the age of the oldest file in a certain directory or return 0 if there aren't any files in this directory. I also need a one-line command doing it. So far this is my command for finding the age in seconds of the oldest file in the directory:
expr $(($(date +%s) - $(stat -c %Y $(ls -lt /path/to/dir/ | tail -1 | awk 'print $NF'))))
The problem is that if there are no files it is returning the following error:
$ expr $(($(date +%s) - $(stat -c %Y $(ls -lt /path/to/dir/ | tail -1 | awk 'print $NF'))))
stat: cannot stat ‘0’: No such file or directory
-bash: 1554373460 - : syntax error: operand expected (error token is "- ")
So in this case I want the command to return just 0 and to suppress the error printout.
shell-script files directory
I want to find the age of the oldest file in a certain directory or return 0 if there aren't any files in this directory. I also need a one-line command doing it. So far this is my command for finding the age in seconds of the oldest file in the directory:
expr $(($(date +%s) - $(stat -c %Y $(ls -lt /path/to/dir/ | tail -1 | awk 'print $NF'))))
The problem is that if there are no files it is returning the following error:
$ expr $(($(date +%s) - $(stat -c %Y $(ls -lt /path/to/dir/ | tail -1 | awk 'print $NF'))))
stat: cannot stat ‘0’: No such file or directory
-bash: 1554373460 - : syntax error: operand expected (error token is "- ")
So in this case I want the command to return just 0 and to suppress the error printout.
shell-script files directory
shell-script files directory
asked Apr 4 at 10:26
Georgе StoyanovGeorgе Stoyanov
164421
164421
2
Out of curiosity, why does it have to be in one line? It's much less readable & maintainable that way.
– Jeff Schaller♦
Apr 4 at 10:30
I am passing this line to specialized software. Then according to the output of the command, I can trigger an alarm and if I make it on more than a single line, I need to write more complex logic. The idea is to check a specific directory where there should not be any files for more than 20 seconds, I want to trigger an alarm if the age of the oldest file is more than 30 seconds.
– Georgе Stoyanov
Apr 4 at 10:39
also I would be very happy if you have any ideas, how I can simplify my command for finding the age of the oldest file
– Georgе Stoyanov
Apr 4 at 10:41
ls -lt | tail -1
will give you the oldest file; you can parse out the date or go through thestat
stuff without having to do a single line shell loop
– mpez0
Apr 4 at 20:06
@mpez0 this is exactly what I am doing, check my original post.
– Georgе Stoyanov
Apr 5 at 7:52
add a comment |
2
Out of curiosity, why does it have to be in one line? It's much less readable & maintainable that way.
– Jeff Schaller♦
Apr 4 at 10:30
I am passing this line to specialized software. Then according to the output of the command, I can trigger an alarm and if I make it on more than a single line, I need to write more complex logic. The idea is to check a specific directory where there should not be any files for more than 20 seconds, I want to trigger an alarm if the age of the oldest file is more than 30 seconds.
– Georgе Stoyanov
Apr 4 at 10:39
also I would be very happy if you have any ideas, how I can simplify my command for finding the age of the oldest file
– Georgе Stoyanov
Apr 4 at 10:41
ls -lt | tail -1
will give you the oldest file; you can parse out the date or go through thestat
stuff without having to do a single line shell loop
– mpez0
Apr 4 at 20:06
@mpez0 this is exactly what I am doing, check my original post.
– Georgе Stoyanov
Apr 5 at 7:52
2
2
Out of curiosity, why does it have to be in one line? It's much less readable & maintainable that way.
– Jeff Schaller♦
Apr 4 at 10:30
Out of curiosity, why does it have to be in one line? It's much less readable & maintainable that way.
– Jeff Schaller♦
Apr 4 at 10:30
I am passing this line to specialized software. Then according to the output of the command, I can trigger an alarm and if I make it on more than a single line, I need to write more complex logic. The idea is to check a specific directory where there should not be any files for more than 20 seconds, I want to trigger an alarm if the age of the oldest file is more than 30 seconds.
– Georgе Stoyanov
Apr 4 at 10:39
I am passing this line to specialized software. Then according to the output of the command, I can trigger an alarm and if I make it on more than a single line, I need to write more complex logic. The idea is to check a specific directory where there should not be any files for more than 20 seconds, I want to trigger an alarm if the age of the oldest file is more than 30 seconds.
– Georgе Stoyanov
Apr 4 at 10:39
also I would be very happy if you have any ideas, how I can simplify my command for finding the age of the oldest file
– Georgе Stoyanov
Apr 4 at 10:41
also I would be very happy if you have any ideas, how I can simplify my command for finding the age of the oldest file
– Georgе Stoyanov
Apr 4 at 10:41
ls -lt | tail -1
will give you the oldest file; you can parse out the date or go through the stat
stuff without having to do a single line shell loop– mpez0
Apr 4 at 20:06
ls -lt | tail -1
will give you the oldest file; you can parse out the date or go through the stat
stuff without having to do a single line shell loop– mpez0
Apr 4 at 20:06
@mpez0 this is exactly what I am doing, check my original post.
– Georgе Stoyanov
Apr 5 at 7:52
@mpez0 this is exactly what I am doing, check my original post.
– Georgе Stoyanov
Apr 5 at 7:52
add a comment |
2 Answers
2
active
oldest
votes
If it must be one line:
stat -c %Y ./* 2>/dev/null | awk -v d="$(date +%s)" 'BEGIN m=d $0 < m m = $0 END print d - m'
stat -c %Y ./* 2>/dev/null
print the timestamp of all files, ignoring errors (so no files results in no output)With awk:
-v d="$(date +%s)"
save the current timestamp in a variabled
BEGIN m=d
initializem
tod
$0 < m m = $0
keeping track of the minimum inm
END print d - m
print the difference.
unfortunately, it does return 0 no matter if the directory is empty or it has more than one file
– Georgе Stoyanov
Apr 4 at 10:55
@George ah, oops, I inverted the check for min
– muru
Apr 4 at 11:03
add a comment |
With zsh
and perl
:
perl -le 'print 0+-M $ARGV[0]' /path/to/dir/*(N-Om[1])
(add the D
glob qualifier if you also want to consider hidden files (but not .
nor ..
)).
Note that for symlinks, that considers the modification time of the file it resolves to. Remove the -
in the glob qualifiers to consider the modification time of the symlink instead (and use (lstat$ARGV[0] && -M _)
in perl
to get the age of the symlink).
That gives the age in days. Multiply by 86400 to get a number of seconds:
perl -le 'print 86400*-M $ARGV[0]' /path/to/dir/*(N-Om[1])
(N-Om[1])
: glob qualifier:N
: turns onnullglob
for that glob. So if there's no file in the directory, expands to nothing causingperl
's-M
to returnundef
.-
: causes next glob qualifiers to apply on the target of symlinksOm
: reverse (capital) order by modification time (so from oldest to newest likels -rt
)[1]
: select first matching file only
-M file
: gets the age of the content of the file.0+
or86400*
force a conversion to number (for theundef
case).
I am getting just 0 as an output even though it should show me a couple of thousands of seconds, both commands actually gives me the same output and on another machine I am getting an error:-bash: syntax error near unexpected token '('
, the one giving me an error is running a rather old version of perl:v5.16.3
– Georgе Stoyanov
Apr 4 at 14:39
2
@GeorgеStoyanov, the syntax is forzsh
, notbash
.
– Stéphane Chazelas
Apr 4 at 15:37
I missed that part :) Thanks for the answer @Stephane
– Georgе Stoyanov
Apr 5 at 7:50
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "106"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f510472%2ffind-the-age-of-the-oldest-file-in-one-line-or-return-zero%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
If it must be one line:
stat -c %Y ./* 2>/dev/null | awk -v d="$(date +%s)" 'BEGIN m=d $0 < m m = $0 END print d - m'
stat -c %Y ./* 2>/dev/null
print the timestamp of all files, ignoring errors (so no files results in no output)With awk:
-v d="$(date +%s)"
save the current timestamp in a variabled
BEGIN m=d
initializem
tod
$0 < m m = $0
keeping track of the minimum inm
END print d - m
print the difference.
unfortunately, it does return 0 no matter if the directory is empty or it has more than one file
– Georgе Stoyanov
Apr 4 at 10:55
@George ah, oops, I inverted the check for min
– muru
Apr 4 at 11:03
add a comment |
If it must be one line:
stat -c %Y ./* 2>/dev/null | awk -v d="$(date +%s)" 'BEGIN m=d $0 < m m = $0 END print d - m'
stat -c %Y ./* 2>/dev/null
print the timestamp of all files, ignoring errors (so no files results in no output)With awk:
-v d="$(date +%s)"
save the current timestamp in a variabled
BEGIN m=d
initializem
tod
$0 < m m = $0
keeping track of the minimum inm
END print d - m
print the difference.
unfortunately, it does return 0 no matter if the directory is empty or it has more than one file
– Georgе Stoyanov
Apr 4 at 10:55
@George ah, oops, I inverted the check for min
– muru
Apr 4 at 11:03
add a comment |
If it must be one line:
stat -c %Y ./* 2>/dev/null | awk -v d="$(date +%s)" 'BEGIN m=d $0 < m m = $0 END print d - m'
stat -c %Y ./* 2>/dev/null
print the timestamp of all files, ignoring errors (so no files results in no output)With awk:
-v d="$(date +%s)"
save the current timestamp in a variabled
BEGIN m=d
initializem
tod
$0 < m m = $0
keeping track of the minimum inm
END print d - m
print the difference.
If it must be one line:
stat -c %Y ./* 2>/dev/null | awk -v d="$(date +%s)" 'BEGIN m=d $0 < m m = $0 END print d - m'
stat -c %Y ./* 2>/dev/null
print the timestamp of all files, ignoring errors (so no files results in no output)With awk:
-v d="$(date +%s)"
save the current timestamp in a variabled
BEGIN m=d
initializem
tod
$0 < m m = $0
keeping track of the minimum inm
END print d - m
print the difference.
edited Apr 4 at 12:19
Stéphane Chazelas
313k57593950
313k57593950
answered Apr 4 at 10:44
murumuru
37.3k589164
37.3k589164
unfortunately, it does return 0 no matter if the directory is empty or it has more than one file
– Georgе Stoyanov
Apr 4 at 10:55
@George ah, oops, I inverted the check for min
– muru
Apr 4 at 11:03
add a comment |
unfortunately, it does return 0 no matter if the directory is empty or it has more than one file
– Georgе Stoyanov
Apr 4 at 10:55
@George ah, oops, I inverted the check for min
– muru
Apr 4 at 11:03
unfortunately, it does return 0 no matter if the directory is empty or it has more than one file
– Georgе Stoyanov
Apr 4 at 10:55
unfortunately, it does return 0 no matter if the directory is empty or it has more than one file
– Georgе Stoyanov
Apr 4 at 10:55
@George ah, oops, I inverted the check for min
– muru
Apr 4 at 11:03
@George ah, oops, I inverted the check for min
– muru
Apr 4 at 11:03
add a comment |
With zsh
and perl
:
perl -le 'print 0+-M $ARGV[0]' /path/to/dir/*(N-Om[1])
(add the D
glob qualifier if you also want to consider hidden files (but not .
nor ..
)).
Note that for symlinks, that considers the modification time of the file it resolves to. Remove the -
in the glob qualifiers to consider the modification time of the symlink instead (and use (lstat$ARGV[0] && -M _)
in perl
to get the age of the symlink).
That gives the age in days. Multiply by 86400 to get a number of seconds:
perl -le 'print 86400*-M $ARGV[0]' /path/to/dir/*(N-Om[1])
(N-Om[1])
: glob qualifier:N
: turns onnullglob
for that glob. So if there's no file in the directory, expands to nothing causingperl
's-M
to returnundef
.-
: causes next glob qualifiers to apply on the target of symlinksOm
: reverse (capital) order by modification time (so from oldest to newest likels -rt
)[1]
: select first matching file only
-M file
: gets the age of the content of the file.0+
or86400*
force a conversion to number (for theundef
case).
I am getting just 0 as an output even though it should show me a couple of thousands of seconds, both commands actually gives me the same output and on another machine I am getting an error:-bash: syntax error near unexpected token '('
, the one giving me an error is running a rather old version of perl:v5.16.3
– Georgе Stoyanov
Apr 4 at 14:39
2
@GeorgеStoyanov, the syntax is forzsh
, notbash
.
– Stéphane Chazelas
Apr 4 at 15:37
I missed that part :) Thanks for the answer @Stephane
– Georgе Stoyanov
Apr 5 at 7:50
add a comment |
With zsh
and perl
:
perl -le 'print 0+-M $ARGV[0]' /path/to/dir/*(N-Om[1])
(add the D
glob qualifier if you also want to consider hidden files (but not .
nor ..
)).
Note that for symlinks, that considers the modification time of the file it resolves to. Remove the -
in the glob qualifiers to consider the modification time of the symlink instead (and use (lstat$ARGV[0] && -M _)
in perl
to get the age of the symlink).
That gives the age in days. Multiply by 86400 to get a number of seconds:
perl -le 'print 86400*-M $ARGV[0]' /path/to/dir/*(N-Om[1])
(N-Om[1])
: glob qualifier:N
: turns onnullglob
for that glob. So if there's no file in the directory, expands to nothing causingperl
's-M
to returnundef
.-
: causes next glob qualifiers to apply on the target of symlinksOm
: reverse (capital) order by modification time (so from oldest to newest likels -rt
)[1]
: select first matching file only
-M file
: gets the age of the content of the file.0+
or86400*
force a conversion to number (for theundef
case).
I am getting just 0 as an output even though it should show me a couple of thousands of seconds, both commands actually gives me the same output and on another machine I am getting an error:-bash: syntax error near unexpected token '('
, the one giving me an error is running a rather old version of perl:v5.16.3
– Georgе Stoyanov
Apr 4 at 14:39
2
@GeorgеStoyanov, the syntax is forzsh
, notbash
.
– Stéphane Chazelas
Apr 4 at 15:37
I missed that part :) Thanks for the answer @Stephane
– Georgе Stoyanov
Apr 5 at 7:50
add a comment |
With zsh
and perl
:
perl -le 'print 0+-M $ARGV[0]' /path/to/dir/*(N-Om[1])
(add the D
glob qualifier if you also want to consider hidden files (but not .
nor ..
)).
Note that for symlinks, that considers the modification time of the file it resolves to. Remove the -
in the glob qualifiers to consider the modification time of the symlink instead (and use (lstat$ARGV[0] && -M _)
in perl
to get the age of the symlink).
That gives the age in days. Multiply by 86400 to get a number of seconds:
perl -le 'print 86400*-M $ARGV[0]' /path/to/dir/*(N-Om[1])
(N-Om[1])
: glob qualifier:N
: turns onnullglob
for that glob. So if there's no file in the directory, expands to nothing causingperl
's-M
to returnundef
.-
: causes next glob qualifiers to apply on the target of symlinksOm
: reverse (capital) order by modification time (so from oldest to newest likels -rt
)[1]
: select first matching file only
-M file
: gets the age of the content of the file.0+
or86400*
force a conversion to number (for theundef
case).
With zsh
and perl
:
perl -le 'print 0+-M $ARGV[0]' /path/to/dir/*(N-Om[1])
(add the D
glob qualifier if you also want to consider hidden files (but not .
nor ..
)).
Note that for symlinks, that considers the modification time of the file it resolves to. Remove the -
in the glob qualifiers to consider the modification time of the symlink instead (and use (lstat$ARGV[0] && -M _)
in perl
to get the age of the symlink).
That gives the age in days. Multiply by 86400 to get a number of seconds:
perl -le 'print 86400*-M $ARGV[0]' /path/to/dir/*(N-Om[1])
(N-Om[1])
: glob qualifier:N
: turns onnullglob
for that glob. So if there's no file in the directory, expands to nothing causingperl
's-M
to returnundef
.-
: causes next glob qualifiers to apply on the target of symlinksOm
: reverse (capital) order by modification time (so from oldest to newest likels -rt
)[1]
: select first matching file only
-M file
: gets the age of the content of the file.0+
or86400*
force a conversion to number (for theundef
case).
edited Apr 4 at 15:38
answered Apr 4 at 12:18
Stéphane ChazelasStéphane Chazelas
313k57593950
313k57593950
I am getting just 0 as an output even though it should show me a couple of thousands of seconds, both commands actually gives me the same output and on another machine I am getting an error:-bash: syntax error near unexpected token '('
, the one giving me an error is running a rather old version of perl:v5.16.3
– Georgе Stoyanov
Apr 4 at 14:39
2
@GeorgеStoyanov, the syntax is forzsh
, notbash
.
– Stéphane Chazelas
Apr 4 at 15:37
I missed that part :) Thanks for the answer @Stephane
– Georgе Stoyanov
Apr 5 at 7:50
add a comment |
I am getting just 0 as an output even though it should show me a couple of thousands of seconds, both commands actually gives me the same output and on another machine I am getting an error:-bash: syntax error near unexpected token '('
, the one giving me an error is running a rather old version of perl:v5.16.3
– Georgе Stoyanov
Apr 4 at 14:39
2
@GeorgеStoyanov, the syntax is forzsh
, notbash
.
– Stéphane Chazelas
Apr 4 at 15:37
I missed that part :) Thanks for the answer @Stephane
– Georgе Stoyanov
Apr 5 at 7:50
I am getting just 0 as an output even though it should show me a couple of thousands of seconds, both commands actually gives me the same output and on another machine I am getting an error:
-bash: syntax error near unexpected token '('
, the one giving me an error is running a rather old version of perl: v5.16.3
– Georgе Stoyanov
Apr 4 at 14:39
I am getting just 0 as an output even though it should show me a couple of thousands of seconds, both commands actually gives me the same output and on another machine I am getting an error:
-bash: syntax error near unexpected token '('
, the one giving me an error is running a rather old version of perl: v5.16.3
– Georgе Stoyanov
Apr 4 at 14:39
2
2
@GeorgеStoyanov, the syntax is for
zsh
, not bash
.– Stéphane Chazelas
Apr 4 at 15:37
@GeorgеStoyanov, the syntax is for
zsh
, not bash
.– Stéphane Chazelas
Apr 4 at 15:37
I missed that part :) Thanks for the answer @Stephane
– Georgе Stoyanov
Apr 5 at 7:50
I missed that part :) Thanks for the answer @Stephane
– Georgе Stoyanov
Apr 5 at 7:50
add a comment |
Thanks for contributing an answer to Unix & Linux Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f510472%2ffind-the-age-of-the-oldest-file-in-one-line-or-return-zero%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
2
Out of curiosity, why does it have to be in one line? It's much less readable & maintainable that way.
– Jeff Schaller♦
Apr 4 at 10:30
I am passing this line to specialized software. Then according to the output of the command, I can trigger an alarm and if I make it on more than a single line, I need to write more complex logic. The idea is to check a specific directory where there should not be any files for more than 20 seconds, I want to trigger an alarm if the age of the oldest file is more than 30 seconds.
– Georgе Stoyanov
Apr 4 at 10:39
also I would be very happy if you have any ideas, how I can simplify my command for finding the age of the oldest file
– Georgе Stoyanov
Apr 4 at 10:41
ls -lt | tail -1
will give you the oldest file; you can parse out the date or go through thestat
stuff without having to do a single line shell loop– mpez0
Apr 4 at 20:06
@mpez0 this is exactly what I am doing, check my original post.
– Georgе Stoyanov
Apr 5 at 7:52