Once in a telegram chat of the Petersburg Linux community 
SPbLUG I threw a funny puzzle: 
      
        
        
        
      
      List the files in your home directory with as many methods as possible, without using ls or its aliases (1 method - 1 point) 
      
        
        
        
      
      The same task flew 
into another chat a bit later, and here is what came of it: 
      
        
        
        
      
      1. echo and print 
      
        
        
        
      
    for i in ~/* ~/.* ; do echo $i ; done
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     
 
      
        
        
        
      
      Exactly the same thing will be returned by replacing the echo command with print. 
      
        
        
        
      
      In fact, you can do without a cycle, it will turn out not so beautifully, but it fits the condition of the task. 
      
        
        
        
      
    
      
        
        
        
      
     echo ~/* ~/.*
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     
 
      
        
        
        
      
      2. tree 
      
        
        
        
      
      A more obvious way is to use tree, which is practically ls if you pick the right keys. 
      
        
        
        
      
    
      
        
        
        
      
     tree -aiL 1 ~
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     
 
      
        
        
        
      
      3. find 
      
        
        
        
      
      Also a more than obvious solution. 
      
        
        
        
      
    
      
        
        
        
      
     find ~ -maxdepth 1 -mindepth 1
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     
 
      
        
        
        
      
      4. du 
      
        
        
        
      
      Yes, people didnโt forget about du. 
      
        
        
        
      
    
      
        
        
        
      
     du -ad 1 ~
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     
 
      
        
        
        
      
      5. tar 
      
        
        
        
      
      We turn to 
water procedures with subtle perversions. 
      
        
        
        
      
    
      
        
        
        
      
     tar -cvf /dev/null --no-recursion ~/* ~/.* 2>null
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     
 
      
        
        
        
      
      6. 7. Perl and Python 
      
        
        
        
      
      Since in the condition of the problem I forgot to put a restriction on the interpreters, which in modern Linux usually are out of the box in the system, the cooks and serpent farmers could not stay away: 
      
        
        
        
      
      Perl: 
      
        
        
        
      
    
      
        
        
        
      
     perl -e 'use feature "say"; opendir my $dh, "." or die "Could not open . for reading: $!\n"; while (my $thing = readdir $dh) { say $thing; };'
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     
 
      
        
        
        
      
      Python: 
      
        
        
        
      
    
      
        
        
        
      
     echo -e "import os\nfor i in os.listdir(os.getenv('HOME')): print(i)" | python
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     
 
      
        
        
        
      
      Out of competition 
      
        
        
        
      
      They even gave out the source code for C to the mountain, but even though the compiler is present almost everywhere, except for any emmbedded distributions, I considered this a completely complete mess.  ;-) 
      
        
        
        
      
    
      
        
        
        
      
     #include <stdio.h> #include <stdlib.h> #include <dirent.h> #define HOME getenv("HOME") int main(int argc, char const *argv[]) { struct dirent *dp; DIR *dir = opendir(HOME); while ((dp = readdir(dir)) != NULL) printf("%s\n", dp->d_name); closedir(dir); return 0; }
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     
 
      
        
        
        
      
      PS 
      
        
        
        
      
      Probably, somewhere in coreutils / findutils, the participants of the amusement missed something.  There were unsuccessful attempts to use less / more, but maybe the Habrovsk people also got ideas on the non-standard use of standard utilities. 
      
        
        
        
      
    
      
        
        
        
      
      Upd.  one 
      
        
        
        
      
      Thanks habr!  Comments, this is just some kind of holiday!  And based on their motives, I am preparing a new post.  Stay in touch! 
      
        
        
        
      
    
      
        
        
        
      
      Upd.  2 
      
        
        
        
      
      As I promised, the second part of 
the Marlezon Ballet .