Welcome to the Linux Foundation Forum!

question about ls output

ok. so i'm just learning so pardon me please.

i am entering:

ls -aF

which should return everything in my current directury, hidden or not, and whether its a file, directory or symb link. when i do this i tally up the directories then enter in the following

ls -adl

which should return all (hidden or not) directories in a long list format.

PROBLEM IS the numbers of long list dont match up with my tally in ls -aF. as a matter of fact, if there are 16 items in ls -aF, 16 items show up in ls -adl as well, not just the directories.

just wondering why this is.

thanks. hope that made sense.

Comments

  • mfillpot
    mfillpot Posts: 2,177
    Good question, if made me research and test to figure out what the -d option does.

    The first command ls -aF states to (a) show all files types in the current directory and to (F) append a file type designator.
    The second command ls -adl states to (a) show all file types in the current directory, (d) show only the summary for the current directory and (l) display in list form with file details. This makes the a and d conflict each other, in which the d argument wins.

    It appears that you are looking to find the count of directories versus files in your current directory, you can try these commands:
    Directories: ls -aF|grep /|nl (be aware that the . and .. entries will be listed as directories effectively adding 2 to the count)



    and you can append the pipe (|) and nl to number the list or you can even append the pipe and "tail -n 1" to see only the last line of the output.
  • so here is a print out of my problematic command followed by your successful command:

    ast login: Wed Nov 25 12:30:03 on ttys000
    sgilis-macbook:~ carlos$ ls -aF
    ./ .lesshst Music/
    ../ Desktop/ Pictures/
    .CFUserTextEncoding Documents/ Public/
    .DS_Store Downloads/ Sites/
    .Trash/ Library/
    .bash_history Movies/

    sgilis-macbook:~ carlos$ ls -adl
    drwxr-xr-x+ 16 carlos staff 544 Nov 24 19:03 .

    sgilis-macbook:~ carlos$ ls -aF|grep /|nl
    1 ./
    2 ../
    3 .Trash/
    4 Desktop/
    5 Documents/
    6 Downloads/
    7 Library/
    8 Movies/
    9 Music/
    10 Pictures/
    11 Public/
    12 Sites/
    sgilis-macbook:~ carlos$

    mfillpot wrote:
    The first command ls -aF states to (a) show all files types in the current directory and to (F) append a file type designator.
    The second command ls -adl states to (a) show all file types in the current directory, (d) show only the summary for the current directory and (l) display in list form with file details. This makes the a and d conflict each other, in which the d argument wins.


    No doubt your grep command gave the desired output, but i just dont understand. it seems to me that that in the conflict between (a) and (d) in (ls -adl) its the (a) that wins as opposed to the (d), hence a tally of 16 items vs the twelve. am i right or just missing something?

    once again just trying to learn. no doubt the grep command you gave gave the desired results, now i am trying to understand why the other didnt, and the only thing i can come up with is that the a wins over the d hence the 16 item count.

    thanks as always
  • mfillpot
    mfillpot Posts: 2,177
    casbonano wrote:
    No doubt your grep command gave the desired output, but i just dont understand. it seems to me that that in the conflict between (a) and (d) in (ls -adl) its the (a) that wins as opposed to the (d), hence a tally of 16 items vs the twelve. am i right or just missing something?

    once again just trying to learn. no doubt the grep command you gave gave the desired results, now i am trying to understand why the other didnt, and the only thing i can come up with is that the a wins over the d hence the 16 item count.

    thanks as always

    That is quite interesting that the a argument won on your system, I tried the same command in ubuntu and slackware in which the d took precidence on my system. It may be that you have a different version of ls installed than I do, the installed version is the same on my system for both distros.

    The conflict of functions and the lack of a clear directory extraction option in ls both confuse me. But that is the beauty of using opensource and free software, there are many options for tools to complete the same or similar function , the key is to find the tool that best fits your needs.

    And if you choose you can evaluate the source code from the linux-utils applications to see exactly what is being done with the various options and orders.

Categories

Upcoming Training