Linux recursive directory listing using ls -R command. The -R option passed to the ls command to list subdirectories recursively.
The ls command is used to list files. "ls" on its own lists all files in the current directory except for hidden files.
dir command in Linux is used to list the contents of a directory.
Use find:
find . -name \*.txt -print
On systems that use GNU find, like most GNU/Linux distributions, you can leave out the -print.
Use tree
, with -f
(full path) and -i
(no indentation lines):
tree -if --noreport .
tree -if --noreport directory/
You can then use grep
to filter out the ones you want.
If the command is not found, you can install it:
Type following command to install tree command on RHEL/CentOS and Fedora linux:
# yum install tree -y
If you are using Debian/Ubuntu, Mint Linux type following command in your terminal:
$ sudo apt-get install tree -y
Try find
. You can look it up exactly in the man page, but it's sorta like this:
find [start directory] -name [what to find]
so for your example
find . -name "*.txt"
should give you what you want.
You could use find instead:
find . -name '*.txt'
To get the actual full path file names of the desired files using the find command, use it with the pwd command:
find $(pwd) -name \*.txt -print
That does the trick:
ls -R1 $PWD | while read l; do case $l in *:) d=${l%:};; "") d=;; *) echo "$d/$l";; esac; done | grep -i ".txt"
But it does that by "sinning" with the parsing of ls
, though, which is considered bad form by the GNU and Ghostscript communities.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With