Get file list linux

How do I list files with full paths in Linux?

In Linux, is there an equivalent to Dir /s /a /b where the full path and filename is listed? I’m new to Linux, and without a GUI, I want to get an idea of the structure of what’s on the hard disk.

7 Answers 7

Use the find command. By default it will recursively list every file and folder descending from your current directory, with the full (relative) path.

If you want the full path, use:

If you want the relative path, use:

Here, $PWD is a variable containing the current working directory.

  • If you want to restrict it to files or folders only, use find «$PWD» -type f or find -type d , respectively.
  • If you want it to stop at a certain directory depth, use find «$PWD» -maxdepth 2 , for example.

Read Finding Files for an extensive manual on GNU find , which is the default on Linux.

pwd is your working directory. Type it into console and you’ll see where you are (useful if your prompt doesn’t tell you).

@LukePuplett pwd will print your current working directory. If you enclose a command with $() , its output (i.e. your working directory) will be substituted before the outer command is run. So find will actually not see find $(pwd) , but find /home/luke/ , for example. This is called command substitution.

You probably meant the second example in the first bullet point to be find -type d ( d for directory). At the moment the two are identical. (And I don’t have the rep to make «trivial» edits here at SU.)

$ pwd /home/victoria $ find $(pwd) -maxdepth 1 -type f -not -path '*/\.*' | sort /home/victoria/new /home/victoria/new1 /home/victoria/new2 /home/victoria/new3 /home/victoria/new3.md /home/victoria/new.md /home/victoria/package.json /home/victoria/Untitled Document 1 /home/victoria/Untitled Document 2 $ find . -maxdepth 1 -type f -not -path '*/\.*' | sed 's/^\.\///g' | sort new new1 new2 new3 new3.md new.md package.json Untitled Document 1 Untitled Document 2 
  • . : current folder
  • remove -maxdepth 1 to search recursively
  • -type f : find files, not directories ( d )
  • -not -path ‘*/\.*’ : do not return .hidden_files
  • sed ‘s/^\.\///g’ : remove the prepended ./ from the result list

@Marco it’s irrelevant here because it’s the shell that’s important. In all common POSIX shells this won’t work for names with spaces due to the word splitting and you must use «$PWD» like in slhck’s answer. «$(pwd)» also works but it’s far worse because it requires another subshell to be spawned

@phuclv You’re right. Still, this question is tagged linux so readers should not expect it to work on, lets say, macOS or OS X. There are very real and subtle differences between the two.

Читайте также:  Linux for your phone

@Marco but on Linux it still won’t work if there are spaces in the directory names. That’s a very real thing that anyone must know

Most answers here mention find or just ls or ll, and pwd but with the use of find.

here it is with the use of ll

plaj@her-dta-01:~> ll -d $PWD/* drwxr-xr-x 2 plaj users 4096 Jul 3 10:27 /home/plaj/bin -rw-r--r-- 1 plaj users 203 Aug 19 17:21 /home/plaj/file.json drwxr-xr-x 5 plaj users 4096 Aug 12 08:06 /home/plaj/file2 drwxr-xr-x 6 plaj users 4096 Sep 2 09:37 /home/plaj/file3 drwxr-xr-x 5 plaj users 4096 Aug 12 15:15 /home/plaj/file4 -rw-r--r-- 1 plaj users 566 Sep 2 11:10 /home/plaj/etcfile.log 

For completeness, the ls -lR / command will list the name of each file, the file type, file mode bits, number of hard links, owner name, group name, size, and timestamp of every file (that you have permission to access) from the root directory down. ( l is for long list ie all that info, R is to recurse through directories, / starts at the root of the filesystem.)

There are a number of params to make the output info closer to dir /S /A , but I have to admit I can’t work out how to translate the /B .

For useful info, I would try: ls -lAFGR —si /

  • l = long list (as mentioned above)
  • A = almost all files (doesn’t include . and .. in each dir, but does show all hidden files)
  • F = show file indicator, (one of * for exe files, / for directories, @ for symbolic links, | for FIFOs, = for sockets, and > for doors)
  • G = don’t show group info (remove this if you want to see it)
  • R = recursively list directories (subdirectories) and
  • —si = show the file size in human readable eg 1M format (where 1M = 1000B)

ls can provide an easier to read synopsis of directories and files within those directories, as find ‘s output can be difficult to scan when files are contained within really long directory structures (spanning multiple lines). The corollary is that each file is listed on its own (ie without directory path information) and you may have to go back a couple of pages/screens to find the directories a particular file is located in.

Also, find doesn’t contain the /A information in the DIR command. I’ve suggested a number of attributes in the command I’ve shown (that coincidentally show the extra usefulness that you get from linux over a certain proprietary system), but if you read the man and info pages on ls , you will be able to see what to include or not.

Источник

ls command in Linux/Unix

ls is a Linux shell command that lists directory contents of files and directories.

ls syntax

$ ls [options] [file|dir]

ls command options

option description
ls -a list all files including hidden file starting with ‘.’
ls —color colored list [=always/never/auto]
ls -d list directories — with ‘ */’
ls -F add one char of */=>@| to enteries
ls -i list file’s inode index number
ls -l list with long format — show permissions
ls -la list long format including hidden files
ls -lh list long format with readable file size
ls -ls list with long format with file size
ls -r list in reverse order
ls -R list recursively directory tree
ls -s list file size
ls -S sort by file size
ls -t sort by time & date
ls -X sort by extension name
Читайте также:  Kali linux network nat

ls command examples

You can press the tab button to auto complete the file or folder names.

List directory Documents/Books with relative path:

List directory /home/user/Documents/Books with absolute path.

List user’s home directory (e.g: /home/user):

List with long format and show hidden files:

Recursive directory tree list:

List only text files with wildcard:

ls redirection to output file:

List files and directories with full path:

ls code generator

Select ls options and press the Generate Code button:

Источник

Get a list of all files in folder and sub-folder in a file

How do I get a list of all files in a folder, including all the files within all the subfolders and put the output in a file?

7 Answers 7

You can do this on command line, using the -R switch (recursive) and then piping the output to a file thus:

this will make a file called filename1 in the current directory, containing a full directory listing of the current directory and all of the sub-directories under it.

You can list directories other than the current one by specifying the full path eg:

will list everything in and under /var and put the results in a file in the current directory called filename2. This works on directories owned by another user including root as long as you have read access for the directories.

You can also list directories you don’t have access to such as /root with the use of the sudo command. eg:

sudo ls -R /root > filename3 

Would list everything in /root, putting the results in a file called filename3 in the current directory. Since most Ubuntu systems have nothing in this directory filename3 will not contain anything, but it would work if it did.

Maybe telling the person to cd into the directory first could be added to answer.Also this works fine if i own the directory but if trying in a directory say owned by root it didnt.I got the usual permission denied and sudo followed by your command also gave permission denied. IS there a work around without logging in as root?

Well I did say «current» directory. The correct use of CD might the subject of another question, and I’m sure it has been. You can list directories owned by root as long as you have read access to them. Directories owned by root to which the user has read access can be listed with ls -R. It’s hard to imagine why you’d want to list directories owned by root to which you don’t have read access, but sudo does indeed work if you give the full path. I’m adding examples for both of these, but excluding the use of CD.

Читайте также:  Удалить файл альт линукс

Just use the find command with the directory name. For example to see the files and all files within folders in your home directory, use

Also check find GNU info page by using info find command in a terminal.

This is the most powerful approach. find has many parameters to customize output format and file selection.

That’s the best approach in my opinion. Simple and practical. Could also do $ find . > output if there’s many directories.

tree

An alternative to recursive ls is the command line tool tree that comes with quite a lot of options to customize the format of the output diplayed. See the manpage for tree for all options.

will give you the same as tree using other characters for the lines.

to display hidden files too

  1. Go to the folder you want to get a content list from.
  2. Select the files you want in your list ( Ctrl + A if you want the entire folder).
  3. Copy the content with Ctrl + C .
  4. Open gedit and paste the content using Ctrl + V . It will be pasted as a list and you can then save the file.

This method will not include subfolder, content though.

You could also use the GUI counterpart to Takkat’s tree suggestion which is Baobab. It is used to view folders and subfolders, often for the purpose of analysing disk usage. You may have it installed already if you are using a GNOME desktop (it is often called disk usage analyser).

sudo apt-get install baobab 

You can select a folder and also view all its subfolders, while also getting the sizes of the folders and their contents as the screenshot below shows. You just click the small down arrow to view a subfolder within a folder. It is very useful for gaining a quick insight into what you’ve got in your folders and can produce viewable lists, but at the present moment it cannot export them to file. It has been requested as a feature, however, at Launchpad. You can even use it to view the root filesystem if you use gksudo baobab .

(You can also get a list of files with their sizes by using ls -shR ~/myfolder and then export that to file.)

Источник

Оцените статью
Adblock
detector