lsfile lsdir
26.04.2009
12:50:52 Uhr2810 Aufrufe
12:50:52 Uhr
Hilfreich +1
Oft hörte ich die Frage: "Wie kann man sich in einem Verzeichnis nur die Unterverzeichnisse oder nur Dateien anzeigen lassen?" Wenn man sich im Verzeichnis /etc befindet ist diese Frage durchaus berechtigt. Finde ich. Daher habe ich 2 Shellskripte geschrieben, sie sind um das FHS zu wahren, ins Verzeichnis /usr/local/bin zu kopieren. Und um die Lösung nicht nur für mich zu behalten gebe ich sie gerne weiter.
01.
#!/bin/bash 02.
03.
# file: lsdir 04.
# Created by Strathmore 05.
# Created 26.04.2009 06.
07.
declare filelist 08.
declare fileoutput 09.
declare file 10.
11.
filelist=$(ls $@) 12.
fileoutput="" 13.
for file in $filelist 14.
do 15.
[ -d "$file" ] && fileoutput="$fileoutput $file" 16.
done 17.
if [ -n "$fileoutput" ] 18.
then 19.
ls -d --color $@ $fileoutput 20.
fi01.
#!/bin/bash 02.
03.
# file lsfile 04.
# Created by Strathmore 05.
# Created 26.04.2009 06.
07.
declare filelist 08.
declare fileoutput 09.
declare file 10.
11.
filelist=$(ls $@) 12.
fileoutput="" 13.
for file in $filelist 14.
do 15.
[ -f "$file" ] && fileoutput="$fileoutput $file" 16.
done 17.
if [ -n "$fileoutput" ] 18.
then 19.
ls --color $@ $fileoutput 20.
fiAnmerkung: Der aufmerksame Benutzer wird schnell feststellen, dass sich die beiden Skripte nur geringfügig unterscheiden. Doch hielt ich es für besser zwei Skripte mit einem sprechenden Namen zu schreiben, als einen zusätzlichen Parameter einzufügen.
Gruß
Strathmore










