Is there a way to get ls to listen for changes and update output similar to tail -f?
I have a process that creates many files in a known directory, and the only way to tell how far along it is is to type ls
manually. Is there a way to make the output of ls
update automatically as new files are created, similar to how tail -f
works? Because of their names, every new file appears at the end of the list, so I wouldn't have to worry about them appearing in the middle.
terminal ls
New contributor
add a comment |
I have a process that creates many files in a known directory, and the only way to tell how far along it is is to type ls
manually. Is there a way to make the output of ls
update automatically as new files are created, similar to how tail -f
works? Because of their names, every new file appears at the end of the list, so I wouldn't have to worry about them appearing in the middle.
terminal ls
New contributor
Is the program that creates the files something that instead could possibly be updated to output how far it has come, alternatively how far it has left to go? If not, a tool that is often used to detect file modifications/creation isinotify
.
– Kusalananda
2 days ago
In this specific instance, yes. However I've bumped into this problem in cases where I could not edit the program, and because I couldn't find an answer to this problem on the internet. I figured it would be a useful trick to know, and may help someone else out if there is a solution.
– David Scott
2 days ago
Also, doing this without editing the program does not restrict you to receiving the output in the launch terminal, and can be turned on and off.
– David Scott
2 days ago
add a comment |
I have a process that creates many files in a known directory, and the only way to tell how far along it is is to type ls
manually. Is there a way to make the output of ls
update automatically as new files are created, similar to how tail -f
works? Because of their names, every new file appears at the end of the list, so I wouldn't have to worry about them appearing in the middle.
terminal ls
New contributor
I have a process that creates many files in a known directory, and the only way to tell how far along it is is to type ls
manually. Is there a way to make the output of ls
update automatically as new files are created, similar to how tail -f
works? Because of their names, every new file appears at the end of the list, so I wouldn't have to worry about them appearing in the middle.
terminal ls
terminal ls
New contributor
New contributor
New contributor
asked 2 days ago
David ScottDavid Scott
132
132
New contributor
New contributor
Is the program that creates the files something that instead could possibly be updated to output how far it has come, alternatively how far it has left to go? If not, a tool that is often used to detect file modifications/creation isinotify
.
– Kusalananda
2 days ago
In this specific instance, yes. However I've bumped into this problem in cases where I could not edit the program, and because I couldn't find an answer to this problem on the internet. I figured it would be a useful trick to know, and may help someone else out if there is a solution.
– David Scott
2 days ago
Also, doing this without editing the program does not restrict you to receiving the output in the launch terminal, and can be turned on and off.
– David Scott
2 days ago
add a comment |
Is the program that creates the files something that instead could possibly be updated to output how far it has come, alternatively how far it has left to go? If not, a tool that is often used to detect file modifications/creation isinotify
.
– Kusalananda
2 days ago
In this specific instance, yes. However I've bumped into this problem in cases where I could not edit the program, and because I couldn't find an answer to this problem on the internet. I figured it would be a useful trick to know, and may help someone else out if there is a solution.
– David Scott
2 days ago
Also, doing this without editing the program does not restrict you to receiving the output in the launch terminal, and can be turned on and off.
– David Scott
2 days ago
Is the program that creates the files something that instead could possibly be updated to output how far it has come, alternatively how far it has left to go? If not, a tool that is often used to detect file modifications/creation is
inotify
.– Kusalananda
2 days ago
Is the program that creates the files something that instead could possibly be updated to output how far it has come, alternatively how far it has left to go? If not, a tool that is often used to detect file modifications/creation is
inotify
.– Kusalananda
2 days ago
In this specific instance, yes. However I've bumped into this problem in cases where I could not edit the program, and because I couldn't find an answer to this problem on the internet. I figured it would be a useful trick to know, and may help someone else out if there is a solution.
– David Scott
2 days ago
In this specific instance, yes. However I've bumped into this problem in cases where I could not edit the program, and because I couldn't find an answer to this problem on the internet. I figured it would be a useful trick to know, and may help someone else out if there is a solution.
– David Scott
2 days ago
Also, doing this without editing the program does not restrict you to receiving the output in the launch terminal, and can be turned on and off.
– David Scott
2 days ago
Also, doing this without editing the program does not restrict you to receiving the output in the launch terminal, and can be turned on and off.
– David Scott
2 days ago
add a comment |
2 Answers
2
active
oldest
votes
You can use command like:
watch ls
to loop execution of ls
command
If the listing is too long you can add -C
to ls
watch ls -C
Or you can create explicit loop with while
while [ 1 ]
do
clear
ls
sleep 60
done
1
Marked this as the answer for being the closest to my intentions, with the added benefit of allowing for the multi-column output of ls.
– David Scott
2 days ago
1
I turned this into a one-line terminal command to make it into an alias more easily:while [ 1 ]; do clear; ls; sleep 60; done
– David Scott
2 days ago
@DavidScott, sure, that's possible, feel free to tune the code according to your environment and requirements
– Romeo Ninov
2 days ago
2
Since you want to watch a progress, something likewatch 'ls -ltr | tail'
may suit best. Note the quotes so that the shell does not interpret the|
.
– rexkogitans
2 days ago
add a comment |
You can use a script like this that monitor every changes and after any change it makes a ls sorted by date. To be able to execute it you would need inotify-tools installed. The script would be the following:
#!/bin/bash
DIRECTORY="your_directory_path"
inotifywait -m -r -e create --format '%w%f' "${DIRECTORY}" | while read NEW
do
ls -hltr
done
New contributor
I like this answer because it doesn't "poll" and update every X seconds. Instead, it will trigger a refresh when there is a reason to refresh. Presumably, it will react more quickly thansleep 60
will allow.
– Christopher Schultz
2 days ago
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
});
}
});
David Scott is a new contributor. Be nice, and check out our Code of Conduct.
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%2f493879%2fis-there-a-way-to-get-ls-to-listen-for-changes-and-update-output-similar-to-tail%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
You can use command like:
watch ls
to loop execution of ls
command
If the listing is too long you can add -C
to ls
watch ls -C
Or you can create explicit loop with while
while [ 1 ]
do
clear
ls
sleep 60
done
1
Marked this as the answer for being the closest to my intentions, with the added benefit of allowing for the multi-column output of ls.
– David Scott
2 days ago
1
I turned this into a one-line terminal command to make it into an alias more easily:while [ 1 ]; do clear; ls; sleep 60; done
– David Scott
2 days ago
@DavidScott, sure, that's possible, feel free to tune the code according to your environment and requirements
– Romeo Ninov
2 days ago
2
Since you want to watch a progress, something likewatch 'ls -ltr | tail'
may suit best. Note the quotes so that the shell does not interpret the|
.
– rexkogitans
2 days ago
add a comment |
You can use command like:
watch ls
to loop execution of ls
command
If the listing is too long you can add -C
to ls
watch ls -C
Or you can create explicit loop with while
while [ 1 ]
do
clear
ls
sleep 60
done
1
Marked this as the answer for being the closest to my intentions, with the added benefit of allowing for the multi-column output of ls.
– David Scott
2 days ago
1
I turned this into a one-line terminal command to make it into an alias more easily:while [ 1 ]; do clear; ls; sleep 60; done
– David Scott
2 days ago
@DavidScott, sure, that's possible, feel free to tune the code according to your environment and requirements
– Romeo Ninov
2 days ago
2
Since you want to watch a progress, something likewatch 'ls -ltr | tail'
may suit best. Note the quotes so that the shell does not interpret the|
.
– rexkogitans
2 days ago
add a comment |
You can use command like:
watch ls
to loop execution of ls
command
If the listing is too long you can add -C
to ls
watch ls -C
Or you can create explicit loop with while
while [ 1 ]
do
clear
ls
sleep 60
done
You can use command like:
watch ls
to loop execution of ls
command
If the listing is too long you can add -C
to ls
watch ls -C
Or you can create explicit loop with while
while [ 1 ]
do
clear
ls
sleep 60
done
edited 2 days ago
roaima
43.1k553116
43.1k553116
answered 2 days ago
Romeo NinovRomeo Ninov
5,59831928
5,59831928
1
Marked this as the answer for being the closest to my intentions, with the added benefit of allowing for the multi-column output of ls.
– David Scott
2 days ago
1
I turned this into a one-line terminal command to make it into an alias more easily:while [ 1 ]; do clear; ls; sleep 60; done
– David Scott
2 days ago
@DavidScott, sure, that's possible, feel free to tune the code according to your environment and requirements
– Romeo Ninov
2 days ago
2
Since you want to watch a progress, something likewatch 'ls -ltr | tail'
may suit best. Note the quotes so that the shell does not interpret the|
.
– rexkogitans
2 days ago
add a comment |
1
Marked this as the answer for being the closest to my intentions, with the added benefit of allowing for the multi-column output of ls.
– David Scott
2 days ago
1
I turned this into a one-line terminal command to make it into an alias more easily:while [ 1 ]; do clear; ls; sleep 60; done
– David Scott
2 days ago
@DavidScott, sure, that's possible, feel free to tune the code according to your environment and requirements
– Romeo Ninov
2 days ago
2
Since you want to watch a progress, something likewatch 'ls -ltr | tail'
may suit best. Note the quotes so that the shell does not interpret the|
.
– rexkogitans
2 days ago
1
1
Marked this as the answer for being the closest to my intentions, with the added benefit of allowing for the multi-column output of ls.
– David Scott
2 days ago
Marked this as the answer for being the closest to my intentions, with the added benefit of allowing for the multi-column output of ls.
– David Scott
2 days ago
1
1
I turned this into a one-line terminal command to make it into an alias more easily:
while [ 1 ]; do clear; ls; sleep 60; done
– David Scott
2 days ago
I turned this into a one-line terminal command to make it into an alias more easily:
while [ 1 ]; do clear; ls; sleep 60; done
– David Scott
2 days ago
@DavidScott, sure, that's possible, feel free to tune the code according to your environment and requirements
– Romeo Ninov
2 days ago
@DavidScott, sure, that's possible, feel free to tune the code according to your environment and requirements
– Romeo Ninov
2 days ago
2
2
Since you want to watch a progress, something like
watch 'ls -ltr | tail'
may suit best. Note the quotes so that the shell does not interpret the |
.– rexkogitans
2 days ago
Since you want to watch a progress, something like
watch 'ls -ltr | tail'
may suit best. Note the quotes so that the shell does not interpret the |
.– rexkogitans
2 days ago
add a comment |
You can use a script like this that monitor every changes and after any change it makes a ls sorted by date. To be able to execute it you would need inotify-tools installed. The script would be the following:
#!/bin/bash
DIRECTORY="your_directory_path"
inotifywait -m -r -e create --format '%w%f' "${DIRECTORY}" | while read NEW
do
ls -hltr
done
New contributor
I like this answer because it doesn't "poll" and update every X seconds. Instead, it will trigger a refresh when there is a reason to refresh. Presumably, it will react more quickly thansleep 60
will allow.
– Christopher Schultz
2 days ago
add a comment |
You can use a script like this that monitor every changes and after any change it makes a ls sorted by date. To be able to execute it you would need inotify-tools installed. The script would be the following:
#!/bin/bash
DIRECTORY="your_directory_path"
inotifywait -m -r -e create --format '%w%f' "${DIRECTORY}" | while read NEW
do
ls -hltr
done
New contributor
I like this answer because it doesn't "poll" and update every X seconds. Instead, it will trigger a refresh when there is a reason to refresh. Presumably, it will react more quickly thansleep 60
will allow.
– Christopher Schultz
2 days ago
add a comment |
You can use a script like this that monitor every changes and after any change it makes a ls sorted by date. To be able to execute it you would need inotify-tools installed. The script would be the following:
#!/bin/bash
DIRECTORY="your_directory_path"
inotifywait -m -r -e create --format '%w%f' "${DIRECTORY}" | while read NEW
do
ls -hltr
done
New contributor
You can use a script like this that monitor every changes and after any change it makes a ls sorted by date. To be able to execute it you would need inotify-tools installed. The script would be the following:
#!/bin/bash
DIRECTORY="your_directory_path"
inotifywait -m -r -e create --format '%w%f' "${DIRECTORY}" | while read NEW
do
ls -hltr
done
New contributor
New contributor
answered 2 days ago
DaselDasel
3917
3917
New contributor
New contributor
I like this answer because it doesn't "poll" and update every X seconds. Instead, it will trigger a refresh when there is a reason to refresh. Presumably, it will react more quickly thansleep 60
will allow.
– Christopher Schultz
2 days ago
add a comment |
I like this answer because it doesn't "poll" and update every X seconds. Instead, it will trigger a refresh when there is a reason to refresh. Presumably, it will react more quickly thansleep 60
will allow.
– Christopher Schultz
2 days ago
I like this answer because it doesn't "poll" and update every X seconds. Instead, it will trigger a refresh when there is a reason to refresh. Presumably, it will react more quickly than
sleep 60
will allow.– Christopher Schultz
2 days ago
I like this answer because it doesn't "poll" and update every X seconds. Instead, it will trigger a refresh when there is a reason to refresh. Presumably, it will react more quickly than
sleep 60
will allow.– Christopher Schultz
2 days ago
add a comment |
David Scott is a new contributor. Be nice, and check out our Code of Conduct.
David Scott is a new contributor. Be nice, and check out our Code of Conduct.
David Scott is a new contributor. Be nice, and check out our Code of Conduct.
David Scott is a new contributor. Be nice, and check out our Code of Conduct.
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%2f493879%2fis-there-a-way-to-get-ls-to-listen-for-changes-and-update-output-similar-to-tail%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
Is the program that creates the files something that instead could possibly be updated to output how far it has come, alternatively how far it has left to go? If not, a tool that is often used to detect file modifications/creation is
inotify
.– Kusalananda
2 days ago
In this specific instance, yes. However I've bumped into this problem in cases where I could not edit the program, and because I couldn't find an answer to this problem on the internet. I figured it would be a useful trick to know, and may help someone else out if there is a solution.
– David Scott
2 days ago
Also, doing this without editing the program does not restrict you to receiving the output in the launch terminal, and can be turned on and off.
– David Scott
2 days ago