475
-ahog-
aqui
Biber
joshivince
MrTrebron
pieh-ejdsch
ricochico

lsfile lsdir

Mitglied: Strathmore
26.04.2009
12:50:52 Uhr
2810 Aufrufe
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.
fi
01.
#!/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.
fi

Anmerkung: 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