Entfernen einer Dateierweiterung beim Kopieren

Entfernen einer Dateierweiterung beim Kopieren

Ich habe eine Frage, die ganz einfach ist, aber ich komme einfach nicht dahinter. Bezüglich der folgenden Befehlszeile:

for foo in *.dist; do cp $foo `basename $foo .dist`; done

Ich weiß, dass es alle Dateien im aktuellen Verzeichnis nimmt, die die Erweiterung .dist haben, sie kopiert und im selben Schritt die Erweiterung .dist entfernt (ich habe sie aus einem Wiki-Beitrag zur Installation von OTRS unter Ubuntu Server entnommen). Ich möchte nur verstehen, WARUM es das tut.

Vielen Dank.

Antwort1

ausman basename

NAME Basisname - entfernt Verzeichnis und Suffix aus Dateinamen

SYNOPSIS Basisname NAME [SUFFIX] Basisname OPTION

BESCHREIBUNG Druckt NAME, wobei alle führenden Verzeichniskomponenten entfernt werden. Falls angegeben, wird auch ein nachfolgendes SUFFIX entfernt.

Der Befehl basename macht dies

verwandte Informationen