I know it gets talked about quite a lot round here but I find zsh really quite useful for this type of thing..
the zsh equivalent of the above, for me would be
ls **/* -ltr
(Edit)[ for an exact reproduction ]
ls **/*(.) -ltr
if you wanted to put a date range on it.. for example, only files from the last 5 days..
ls **/*(m-5) -ltr
or the last 5 hours
ls **/*(mh-5) -ltr
there's loads more of these http://grml.org/zsh/zsh-lovers.html, obviously your shell is a matter of preference, and if you know bash or something similar well enough then the incentive to change is obviously lessened.. but personally I've found that a whole series of small improvements (for me) added up to a pretty large win
edit: as pointed out by pyre, my initial suggestion isn't an exact replica.. but was the first thing that came to mind for me.. i guess s/the\ zsh\ equivalent/something\ similar\ in\ zsh/
edit again:
/tmp/ $ mkdir -p /tmp/test1/test2/test3
/tmp/ $ touch /tmp/test1/test2/test3/test4
/tmp/ $ ls -ltr /tmp/test1/**/*(.)
-rw-r--r-- 1 usr grp 0 Aug 7 15:49 /tmp/test1/test2/test3/test4
/tmp/ $ find /tmp/test1 -type f -print0 | xargs -0 ls -ltr
-rw-r--r-- 1 usr grp 0 Aug 7 15:49 /tmp/test1/test2/test3/test4
Nice to know, thanks! But, how does it work with file names containing spaces (or other strange characters)?
Edit: just to clarify: my question concerns the zsh method. Regarding find+xargs, I wrote that comment :-)
Actually, this edit would be an answer to zap; HN does not let me reply directly to him: is it to prevent flame-wars?
Thats what the print0 arg in find and the --null arg in xargs are for.
print0 prints the file name followed by a NULL character (rather than newline)
Using the --null/-0 arg makes xargs look for NULLs as delimiters and treat everything else literally.
I've used `ls -ltr` for years, and just recently I wrote a recursive version with the help of my local LUG mailing list. Here is my favorite version (put into a script in ~/bin):
find(1) has an -ls built-in, thought the format is slightly different. You can also use -printf to suit. Also, later GNU finds make some uses of xargs unnecessary.
Comments
Why not recursive? Use the following command if you want to have one directory per idea, rather than a single file:
I know it gets talked about quite a lot round here but I find zsh really quite useful for this type of thing..
the zsh equivalent of the above, for me would be
(Edit)[ for an exact reproduction ] if you wanted to put a date range on it.. for example, only files from the last 5 days.. or the last 5 hours there's loads more of these http://grml.org/zsh/zsh-lovers.html, obviously your shell is a matter of preference, and if you know bash or something similar well enough then the incentive to change is obviously lessened.. but personally I've found that a whole series of small improvements (for me) added up to a pretty large winedit: as pointed out by pyre, my initial suggestion isn't an exact replica.. but was the first thing that came to mind for me.. i guess s/the\ zsh\ equivalent/something\ similar\ in\ zsh/
edit again:
Nice to know, thanks! But, how does it work with file names containing spaces (or other strange characters)?
Edit: just to clarify: my question concerns the zsh method. Regarding find+xargs, I wrote that comment :-) Actually, this edit would be an answer to zap; HN does not let me reply directly to him: is it to prevent flame-wars?
Thats what the print0 arg in find and the --null arg in xargs are for.
print0 prints the file name followed by a NULL character (rather than newline) Using the --null/-0 arg makes xargs look for NULLs as delimiters and treat everything else literally.
I keep considering moving to zsh. This example sure makes it look worthwhile. Thanks.
I've used `ls -ltr` for years, and just recently I wrote a recursive version with the help of my local LUG mailing list. Here is my favorite version (put into a script in ~/bin):
It'd be easy to add `-type f` if that's what you want.find(1) has an -ls built-in, thought the format is slightly different. You can also use -printf to suit. Also, later GNU finds make some uses of xargs unnecessary.
That made me read about `+` accumulation, happy day.
I didn't know about + either -- neato! Thanks.