Heim Backend-Entwicklung PHP-Tutorial Zusammenfassung einiger Methoden zum Extrahieren von Dateinamen und Verzeichnisnamen in der Linux-Shell

Zusammenfassung einiger Methoden zum Extrahieren von Dateinamen und Verzeichnisnamen in der Linux-Shell

Feb 07, 2017 pm 05:18 PM

Bei Verwendung der Linux-Shell müssen wir häufig Dateinamen oder Verzeichnisnamen verarbeiten. Die üblichen Vorgänge bestehen darin, den Dateinamen aus dem Pfad zu extrahieren, den Verzeichnisnamen aus dem Pfad zu extrahieren, den Dateisuffixnamen zu extrahieren usw. . Extrahieren Sie beispielsweise den Dateinamen file.txt aus dem Pfad /dir1/dir2/file.txt, extrahieren Sie das Verzeichnis /dir1/dir2, extrahieren Sie das Dateisuffix txt usw.

Im Folgenden werden zwei häufig verwendete Methoden zur Durchführung verwandter Vorgänge vorgestellt.

1. Verwenden Sie ${}

1 ${var##*/}
Die Funktion dieses Befehls besteht darin, das letzte ' von der linken Seite zu entfernen Variable var /'-Zeichen und sein linker Inhalt geben den rechten Inhalt des letzten '/' (mit Ausnahme dieses Zeichens) von links zurück. Anwendungsbeispiele und Ergebnisse sind wie folgt:

Linux shell 之 提取文件名和目录名的一些方法总结

Wie Sie den laufenden Ergebnissen entnehmen können, können wir mit diesem Befehl den Dateinamen file.txt extrahieren, den wir benötigen.

Bei Verwendung in einer Shell-Programmdatei können Sie Variablen verwenden, um das Ergebnis zu speichern und es dann zu verwenden, z. B. file=${var##*/}

2, ${var # #*.}

Die Funktion dieses Befehls besteht darin, das letzte '.'-Zeichen links von der Variablen var und den Inhalt links davon zu entfernen und das letzte '.' zurückzugeben links (enthält dieses Zeichen nicht). Anwendungsbeispiele und Ergebnisse sind wie folgt:

Linux shell 之 提取文件名和目录名的一些方法总结

Wie Sie den laufenden Ergebnissen entnehmen können, können wir mit diesem Befehl das benötigte Dateisuffix extrahieren.

Wenn die Datei mehr als ein Suffix hat, zum Beispiel file.tar.gz, kann der Befehl ${var##*.} nur das letzte Suffix extrahieren, und was soll ich tun, wenn ich möchte? tar.gz extrahieren? Dann müssen Sie den unten erwähnten Befehl ${var#*.} verwenden.

3. ${var#*.}

Die Funktion dieses Befehls besteht darin, das erste „.“ von der linken Seite der Variablen var und den Inhalt zu entfernen left Gibt den Inhalt rechts vom ersten „.“ (mit Ausnahme dieses Zeichens) von links zurück. Anwendungsbeispiele und Ergebnisse sind wie folgt:

Linux shell 之 提取文件名和目录名的一些方法总结

Wie Sie den laufenden Ergebnissen entnehmen können, können mit diesem Befehl mehrere Suffixe von Dateien extrahiert werden.

4. ${var%/*}

Die Verwendung dieses Befehls besteht darin, das erste „/“-Zeichen rechts von der Variablen var und den Inhalt zu entfernen right Gibt den Inhalt links vom ersten „/“ (mit Ausnahme dieses Zeichens) von rechts zurück. Anwendungsbeispiele und Ergebnisse sind wie folgt:

Linux shell 之 提取文件名和目录名的一些方法总结

Wie Sie den laufenden Ergebnissen entnehmen können, können wir mit diesem Befehl das Verzeichnis extrahieren, in dem sich die benötigten Dateien befinden

5 , ${var%%.*}

Die Verwendung dieses Befehls besteht darin, das letzte „.“ von der rechten Seite der Variablen var und ihren Inhalt auf der rechten Seite zu entfernen. und geben Sie das letzte „.“-Zeichen von der rechten Seite der Variablen var zurück. Anwendungsbeispiele und Ergebnisse sind wie folgt:

Linux shell 之 提取文件名和目录名的一些方法总结

Wenn wir ein Verzeichnis mit demselben Namen wie der Dateiname (ohne Suffix) erstellen müssen, der der entsprechenden Datei entspricht, können wir dies tun Verwenden Sie diesen Befehl zum Bedienen. Die Situation beim Dekomprimieren von Dateien ist beispielsweise ähnlich. Wenn wir die Datei file.zip komprimieren, wird ein Verzeichnis mit dem Namen file im selben Verzeichnis wie file.zip erstellt.

6. Zusammenfassung von ${}

Tatsächlich wird ${} nicht speziell zum Extrahieren von Dateinamen oder Verzeichnisnamen verwendet. Es wird zum Extrahieren und Ersetzen von Variablen verwendet. usw. Es kann eine Menge Inhalt extrahieren, nicht unbedingt „/“ oder „.“ in den fünf Beispielen oben. Mit anderen Worten, die obige Verwendungsmethode ist nur ein Sonderfall ihrer Verwendung.

Wenn man die oben genannten Befehle sieht, kann es sehr schwierig sein, sie zu verstehen und zu merken. Tatsächlich sind sie alle normal.

#: Stellt den ersten von links dar

%: Stellt den Ersten von rechts dar

##: Stellt den dar letztes

von links: Stellt das letzte

von rechts dar. Mit anderen Worten bedeutet # immer, von links zu zählen das Richtige.

*: Gibt den zu löschenden Inhalt an. Im Fall von # und ## befindet er sich links vom angegebenen Zeichen (im Beispiel „/“ und „.“), was bedeutet, dass das angegebene Zeichen gelöscht wird und der Inhalt links davon; Im Fall von % und %% befindet es sich auf der rechten Seite des angegebenen Zeichens ('/' und '.' im Beispiel), was darauf hinweist, dass das angegebene Zeichen und der Inhalt dazu gehören rechts werden gelöscht. Die Positionen von „*“ können hier nicht vertauscht werden, d. h. das *-Zeichen darf nicht rechts von # oder ## platziert werden und umgekehrt.

Zum Beispiel: ${var%%x*} bedeutet, das letzte Zeichen x von rechts zu finden und das Zeichen x und die Zeichen rechts davon zu löschen.

Wenn Sie dies sehen, können Sie erkennen, dass dieser Befehl tatsächlich sehr vielseitig ist. Das Obige sind nur einige Sonderfälle zum Extrahieren der Benennungseigenschaften von Zeigerdateinamen und Verzeichnisnamen.

2. basename und dirname

${} sind keine Befehle, die speziell zum Extrahieren von Dateinamen und Verzeichnisnamen entwickelt wurden, daher sind die Befehle basename und dirname speziell dafür konzipiert .

1. Basisname

Die Funktion dieses Befehls besteht darin, den Dateinamen aus dem Pfad zu extrahieren. Die Verwendungsmethode ist Basisname NAME [SUFFIX].

1) Extrahieren Sie den Dateinamen (mit Suffix) aus dem Pfad. Das Beispiel lautet wie folgt:

Linux shell 之 提取文件名和目录名的一些方法总结

2) Wie Sie an der Verwendung erkennen können des obigen Befehls ist das Suffix (SUFFIX) optional. Wenn Sie also nur den Dateinamen ohne Suffix extrahieren möchten, können Sie den Suffixnamen auch nach der Variablen hinzufügen. Das Beispiel lautet wie folgt:

Linux shell 之 提取文件名和目录名的一些方法总结

2. dirname

Die Funktion dieses Befehls besteht darin, den Verzeichnisnamen aus dem Pfad zu extrahieren. Die Verwendungsmethode ist dirname NAME

Das Verwendungsbeispiel lautet wie folgt:

Linux shell 之 提取文件名和目录名的一些方法总结

Auf diese Weise wird das Verzeichnis extrahiert, in dem sich die Datei file.txt befindet.

Hinweis: Dieser Befehl kann nicht nur das Verzeichnis extrahieren, in dem sich normale Dateien befinden, sondern auch das Verzeichnis, in dem sich eine beliebige Datei befindet, beispielsweise das Verzeichnis, in dem sich das Verzeichnis befindet, wie folgt:

Linux shell 之 提取文件名和目录名的一些方法总结

Es extrahiert das Verzeichnis dir1, in dem sich das Verzeichnis dir2 befindet.

Das Obige ist der gesamte Inhalt dieses Artikels Lernen, und ich hoffe auch, dass jeder die chinesische PHP-Website unterstützt.

Eine weitere Linux-Shell-Zusammenfassung einiger Methoden zum Extrahieren von Dateinamen und Verzeichnisnamen finden Sie auf der chinesischen PHP-Website für verwandte Artikel!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Arbeiten mit Flash -Sitzungsdaten in Laravel Arbeiten mit Flash -Sitzungsdaten in Laravel Mar 12, 2025 pm 05:08 PM

Laravel vereinfacht die Behandlung von temporären Sitzungsdaten mithilfe seiner intuitiven Flash -Methoden. Dies ist perfekt zum Anzeigen von kurzen Nachrichten, Warnungen oder Benachrichtigungen in Ihrer Anwendung. Die Daten bestehen nur für die nachfolgende Anfrage standardmäßig: $ Anfrage-

Curl in PHP: So verwenden Sie die PHP -Curl -Erweiterung in REST -APIs Curl in PHP: So verwenden Sie die PHP -Curl -Erweiterung in REST -APIs Mar 14, 2025 am 11:42 AM

Die PHP Client -URL -Erweiterung (CURL) ist ein leistungsstarkes Tool für Entwickler, das eine nahtlose Interaktion mit Remote -Servern und REST -APIs ermöglicht. Durch die Nutzung von Libcurl, einer angesehenen Bibliothek mit Multi-Protokoll-Dateien, erleichtert PHP Curl effiziente Execu

Vereinfachte HTTP -Reaktion verspottet in Laravel -Tests Vereinfachte HTTP -Reaktion verspottet in Laravel -Tests Mar 12, 2025 pm 05:09 PM

Laravel bietet eine kurze HTTP -Antwortsimulationssyntax und vereinfache HTTP -Interaktionstests. Dieser Ansatz reduziert die Code -Redundanz erheblich, während Ihre Testsimulation intuitiver wird. Die grundlegende Implementierung bietet eine Vielzahl von Verknüpfungen zum Antworttyp: Verwenden Sie Illuminate \ Support \ facades \ http; Http :: fake ([ 'Google.com' => 'Hallo Welt',, 'github.com' => ['foo' => 'bar'], 'Forge.laravel.com' =>

12 Beste PHP -Chat -Skripte auf Codecanyon 12 Beste PHP -Chat -Skripte auf Codecanyon Mar 13, 2025 pm 12:08 PM

Möchten Sie den dringlichsten Problemen Ihrer Kunden in Echtzeit und Sofortlösungen anbieten? Mit Live-Chat können Sie Echtzeitgespräche mit Kunden führen und ihre Probleme sofort lösen. Sie ermöglichen es Ihnen, Ihrem Brauch einen schnelleren Service zu bieten

PHP -Protokollierung: Best Practices für die PHP -Protokollanalyse PHP -Protokollierung: Best Practices für die PHP -Protokollanalyse Mar 10, 2025 pm 02:32 PM

Die PHP -Protokollierung ist für die Überwachung und Debugie von Webanwendungen von wesentlicher Bedeutung sowie für das Erfassen kritischer Ereignisse, Fehler und Laufzeitverhalten. Es bietet wertvolle Einblicke in die Systemleistung, hilft bei der Identifizierung von Problemen und unterstützt eine schnellere Fehlerbehebung

Erklären Sie das Konzept der späten statischen Bindung in PHP. Erklären Sie das Konzept der späten statischen Bindung in PHP. Mar 21, 2025 pm 01:33 PM

In Artikel wird die in PHP 5.3 eingeführte LSB -Bindung (LSB) erörtert, die die Laufzeitauflösung der statischen Methode ermöglicht, um eine flexiblere Vererbung zu erfordern. Die praktischen Anwendungen und potenziellen Perfo von LSB

Anpassung/Erweiterung von Frameworks: So fügen Sie benutzerdefinierte Funktionen hinzu. Anpassung/Erweiterung von Frameworks: So fügen Sie benutzerdefinierte Funktionen hinzu. Mar 28, 2025 pm 05:12 PM

In dem Artikel werden Frameworks hinzugefügt, das sich auf das Verständnis der Architektur, das Identifizieren von Erweiterungspunkten und Best Practices für die Integration und Debuggierung hinzufügen.

Rahmensicherheitsmerkmale: Schutz vor Schwachstellen. Rahmensicherheitsmerkmale: Schutz vor Schwachstellen. Mar 28, 2025 pm 05:11 PM

In Artikel werden wichtige Sicherheitsfunktionen in Frameworks erörtert, um vor Schwachstellen zu schützen, einschließlich Eingabevalidierung, Authentifizierung und regelmäßigen Aktualisierungen.

See all articles