Ubuntu Sverige
https://ubuntu-se.org/phpBB3/

Lista directories
https://ubuntu-se.org/phpBB3/viewtopic.php?f=67&t=61602
Sida 1 av 1

Författare:  Osprey [ 22 feb 2020, 12:15 ]
Inläggsrubrik:  Lista directories

Ofta när man jobbar i terminalen så behöver man veta vilka directories (mappar) som finns under det man står i. Här är ett script som jag snickrat ihop för just det...
Kod:
#! /bin/bash
#
function usage {
   cat << EOD

   lsd [-a|--all] [-l|--long] [-t] [-r] [DIRECTORY]

   Options:

      -a | --all   List all directories, including those beginning with "."
      -l | --long   Long listing, including information
      -t       Sort in time-order (can only be used together with -l)
      -r      Sort in reverse order (can only be used together with -l)

EOD
}
#
#####################################################################
TEMP=`getopt -oaltr --long all,long -n $(basename $0) -- "$@"`
if [[ $? -ne 0 ]]; then
   usage
fi
eval set -- "$TEMP"
ALL=false
OPT=""
LONG=false
CMDNAME=$(basename $0)
while true; do
   case $1 in
      -a|--all)
         ALL=true
         shift
         ;;
      -l|--long)
         LONG=true
         shift
         ;;
      -t)
         OPT=$OPT" -t"
         shift
         ;;
      -r)   
         OPT=$OPT" -r"
         shift
         ;;
      --)
         shift
         break
         ;;
      *)
         echo "-Got a star..."
         shift
         ;;
   esac
done
P1=$1
P2=$2
P3=$3
P4=$4
#
echo
if [[ $LONG == true ]]; then
   if [[ -z $P1 ]]; then
      if [[ $ALL == true ]]; then
         #ls -lad --color=auto */. | sed 's=/.==g'
         ls -Al $OPT --indicator-style=none --color=auto | grep "^d"
      else
         #ls -ld --color=auto */. | sed 's=/.==g'
         ls -l $OPT --indicator-style=none --color=auto | grep "^d"
      fi
   else
      if [[ $ALL == true ]]; then
         #ls -lad --color=auto $P1/*/. | sed 's=\/\.==g'
         ls -Al $OPT --indicator-style=none --color=auto $P1 | grep "^d"
      else
         #ls -ld --color=auto $P1/*/. | sed 's=\/\.==g'
         ls -l $OPT --indicator-style=none --color=auto $P1 | grep "^d"
      fi
   fi
else
   if [[ -z $P1 ]]; then
      if [[ $ALL == true ]]; then
         find -L . -maxdepth 1 -type d | awk -F "./" '{ print $2 }' | sort | column
      else
         find -L . -maxdepth 1 -type d -name "[!.]*" | awk -F "./" '{ print $2 }' | sort | column
      fi
   else
      if [[ $ALL == true ]]; then
         find -L $P1 -maxdepth 1 -type d -not -name $P1 | sort | column
      else
         find -L $P1 -maxdepth 1 -type d -name "[!.]*" -not -name $P1 | sort | column
      fi
   fi
fi
echo

Författare:  johanre [ 23 feb 2020, 11:50 ]
Inläggsrubrik:  Re: Lista directories

Snygt! Men det går å andra sidan också att:
Kod:
find . -maxdepth 1 -type d

Författare:  Osprey [ 23 feb 2020, 17:49 ]
Inläggsrubrik:  Re: Lista directories

johanre skrev:
Snygt! Men det går å andra sidan också att:
Kod:
find . -maxdepth 1 -type d

Jo precis och det är ju en av de varianter jag använder mig av, men det ger inte riktigt lika många möjligheter... :)

Sida 1 av 1 Alla tidsangivelser är UTC + 1 timme [ Sommartid ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/