robinjohnobrien
robinjohnobrien

Reputation: 1092

UNIX Shell: List all files in directory excluding directory names

I want to list all the files in a directory recursively. I am storing this output in a file that I will later iterate through and use each line as an argument in another command.

However all the commands I have tried have listed the directory name as one of the output lines followed by the files and directories contained in the directory.

I have tried the following:

tree -if --noreport . > files_names.txt

This has given me some success, but it still prints the directories. An example output is as follows:

/testdir
/testdir/rightfolder/
/testdir/rightfolder/file2.txt
/testdir/rightfolder/file3.txt
/testdir/wrongfolder/
/testdir/wrongfolder/file.txt

I have checked the man pages for tree and ls.

Is there a flag or another command that will give me the correct output. I have considered using a flag for tree to list the directories and then removing all those entries from the original list but this is not elegant at all.

Upvotes: 1

Views: 3984

Answers (1)

cnicutar
cnicutar

Reputation: 182649

You could use find(1) and filter by type:

find ./ -type f

Upvotes: 5

Related Questions