GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So entfernen Sie Leerzeichen aus Dateinamen in Linux

In anderen Betriebssystemumgebungen ist das Erstellen und Verwenden von Dateinamen mit Leerzeichen unwiderruflich zulässig. Wenn wir jedoch die Domäne des Linux-Betriebssystems betreten, wird die Existenz solcher Dateinamen zu einer Unannehmlichkeit.

Betrachten Sie zum Beispiel die Existenz der folgenden Dateinamen in einer Linux-Betriebssystemumgebung.

Gemäß der Befehlszeilenansicht dieser Dateinamen wird das Verarbeiten oder Verschieben aufgrund der Leerzeichen in ihrer Namenskonvention zu einer ungerechtfertigten Unannehmlichkeit.

Darüber hinaus sind Dateinamensräume in Linux ein Nachteil für Benutzer, die sie über webbasierte Anwendungen als Zeichenfolge %20 verarbeiten tendenziell als Teil des verarbeiteten/endgültigen Dateinamens enthalten.

Dieser Artikel wirft einen Blick auf gültige Ansätze, die Ihnen dabei helfen, Leerzeichen in Dateinamen zu entfernen, während Sie unter einer Linux-Betriebssystemumgebung arbeiten.

Voraussetzung

Machen Sie sich mit der Verwendung des Linux-Terminals oder der Befehlszeilenschnittstelle vertraut. Zu praktischen Referenzzwecken verwenden wir die Dateinamen mit Leerzeichen, die in der folgenden Bildschirmaufnahme dargestellt werden.

1. Entfernen von Leerzeichen aus Dateinamen mit bestimmter Dateierweiterung

Der find-Befehl wird mit dem mv-Befehl kombiniert, um sein funktionales Ziel effektiv auszuführen, Leerzeichen aus einem Dateinamen mit einer bestimmten Dateierweiterung zu entfernen, z. B. .xml Dateien.

$ find . -type f -name "* *.xml" -exec bash -c 'mv "$0" "${0// /_}"' {} \;

2. Leerzeichen in Dateinamen mit dem Befehl rename ersetzen

Alternativ statt find zu verwenden mit mv Befehlen zum Verfolgen und Ersetzen von Dateinamensräumen, könnten wir ein einziges rename verwenden Befehl, der eine Pearl-Erweiterung ist und in den folgenden Linux-Betriebssystem-Distributionen installiert werden kann:

$ sudo apt install rename         [On Debian, Ubuntu and Mint]
$ sudo yum install rename         [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
$ sudo emerge -a sys-apps/rename  [On Gentoo Linux]
$ sudo pacman -S rename           [On Arch Linux]
$ sudo zypper install rename      [On OpenSUSE]    

Nach der Installation wird die Umbenennung Der Befehl kann folgendermaßen verwendet werden:

$ rename 's/\s/_/g' ./*.xml

Der obige Befehl ersetzt die Leerzeichen in allen .xml Dateien mit einem Unterstrich. Um alle Leerzeichen in allen Dateinamen unabhängig von der Dateierweiterung zu ersetzen, verwenden Sie:

 
$ rename 's/\s/_/g' ./*.* 

3. Leerzeichen in Dateinamen mit For-Schleife und mv-Befehl ersetzen

Dieser Ansatz ist effektiv, um Dateinamensräume in verschiedenen Dateinamenformaten zu beseitigen, die in einem bestimmten/Zielordner/Verzeichnis vorhanden sind. Die for-Schleife Die Funktion fragt nach Dateinamensräumen innerhalb eines Zielverzeichnisses/Ordners und ersetzt diese Dateinamensräume anschließend durch einen Unterstrich.

Betrachten Sie die folgende Implementierung dieses Ansatzes:

$ for f in *; do mv "$f" `echo $f | tr ' ' '_'`; done

Vor Beginn dieses Artikels waren Dateinamensräume ein Ärgernis, insbesondere wenn Sie Dateien vom Linux-Terminal kopieren und verschieben oder über ein webbasiertes Programm verarbeiten müssen. Dieses Tutorial hat eine praktikable Lösung bereitgestellt, die solchen Unannehmlichkeiten entgegenwirkt.


Linux
  1. So fügen Sie einen Benutzer zu einer Gruppe in Linux hinzu oder entfernen ihn

  2. Linux – Wie führe ich einen Bootloader von Linux aus?

  3. Wie kann ich Jenkins vollständig aus Linux entfernen

  4. So entfernen Sie frühere Versionen von .NET Core von Linux (CentOS 7.1)

  5. Wie entferne ich ungültige Zeichen aus Dateinamen?

So entfernen Sie einen Befehl aus dem Verlauf in Linux

So erhalten Sie den Dateinamen aus dem vollständigen Pfad in Linux

So entfernen Sie (^M) Zeichen aus einer Datei in Linux

So deinstallieren Sie Anwendungen von Ubuntu Linux

So deinstallieren Sie Programme von Ubuntu Linux

So gehen Sie Dateinamen mit Leerzeichen in Linux an