Is there a way to get ls to listen for changes and update output similar to tail -f?












2















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.










share|improve this question







New contributor




David Scott is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





















  • 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
















2















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.










share|improve this question







New contributor




David Scott is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





















  • 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














2












2








2








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.










share|improve this question







New contributor




David Scott is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.












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






share|improve this question







New contributor




David Scott is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question







New contributor




David Scott is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question






New contributor




David Scott is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked 2 days ago









David ScottDavid Scott

132




132




New contributor




David Scott is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





David Scott is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






David Scott is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.













  • 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



















  • 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

















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










2 Answers
2






active

oldest

votes


















10














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





share|improve this answer





















  • 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 like watch 'ls -ltr | tail' may suit best. Note the quotes so that the shell does not interpret the |.

    – rexkogitans
    2 days ago





















8














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





share|improve this answer








New contributor




Dasel is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





















  • 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











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.










draft saved

draft discarded


















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









10














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





share|improve this answer





















  • 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 like watch 'ls -ltr | tail' may suit best. Note the quotes so that the shell does not interpret the |.

    – rexkogitans
    2 days ago


















10














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





share|improve this answer





















  • 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 like watch 'ls -ltr | tail' may suit best. Note the quotes so that the shell does not interpret the |.

    – rexkogitans
    2 days ago
















10












10








10







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





share|improve this answer















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






share|improve this answer














share|improve this answer



share|improve this answer








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 like watch 'ls -ltr | tail' may suit best. Note the quotes so that the shell does not interpret the |.

    – rexkogitans
    2 days ago
















  • 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 like watch '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















8














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





share|improve this answer








New contributor




Dasel is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





















  • 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
















8














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





share|improve this answer








New contributor




Dasel is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





















  • 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














8












8








8







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





share|improve this answer








New contributor




Dasel is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.










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






share|improve this answer








New contributor




Dasel is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this answer



share|improve this answer






New contributor




Dasel is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









answered 2 days ago









DaselDasel

3917




3917




New contributor




Dasel is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





Dasel is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






Dasel is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.













  • 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

















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










David Scott is a new contributor. Be nice, and check out our Code of Conduct.










draft saved

draft discarded


















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.




draft saved


draft discarded














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





















































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







Popular posts from this blog

"Incorrect syntax near the keyword 'ON'. (on update cascade, on delete cascade,)

Alcedinidae

Origin of the phrase “under your belt”?