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

So berühren Sie eine Datei und mkdir bei Bedarf in einer Zeile

In Perl mit einem meiner Lieblingsmodule:Path::Tiny.

path("/opt/test/test.txt")->touchpath;

Aus dem Dokument:

Kombiniert mkpath und touch. Erstellt das übergeordnete Verzeichnis, falls es nicht existiert, bevor die Datei berührt wird.


Ich tippe sehr wenig gerne, also habe ich diesen Befehl in ein benanntes fn in meiner .profile-Datei eingefügt, aber ich habe diese Formulierung jahrelang verwendet, bevor ich es tat:

mkdir -p dirname/sub/dir && touch $_/filename.ext

Die Variable $_ speichert das letzte Argument des vorherigen Befehls. Ziemlich praktisch, alles über alles zu wissen.


mkdir B && touch B/myfile.txt

Erstellen Sie alternativ eine Funktion:

   mkfile() { 
    mkdir -p $( dirname "$1") && touch "$1" 
   }

Führen Sie es mit 1 Argumenten aus:Dateipfad. Sprichwort:

mkfile B/C/D/myfile.txt

würde die Datei myfile.txt im Verzeichnis B/C/D erstellen.


In einem Shell-Skript können Sie einfach Folgendes tun:

mkdir -p /opt/test && touch /opt/test/test.txt

mkdir -p wird nicht fehlschlagen (und nichts tun), wenn das Verzeichnis bereits existiert.

Verwenden Sie in Perl make_path von File::Path Modul, dann erstellen Sie die Datei wie Sie wollen. make_path tut auch nichts, wenn das Verzeichnis bereits existiert, also müssen Sie nicht selbst nachsehen.


Linux
  1. Wie verschiebt man eine Zeile in einer Textdatei um eine Zeile nach oben oder unten?

  2. Wie fügt man mehrere Zeilen an eine Datei an?

  3. So fügen Sie einer Datei in Linux Header- und Trailer-Zeile hinzu

  4. Ein Befehl zum Erstellen eines Verzeichnisses und einer Datei darin Linux-Befehl

  5. Wie teilt man eine Textdatei in mehrere *.txt-Dateien auf?

So lesen Sie eine Datei Zeile für Zeile in Bash

So teilen Sie eine große Datei in Teile bei bestimmten Zeilennummern auf

Wie man mit Hardlinks und Softlinks unter Linux arbeitet

Wie überprüfe ich die Inode-Nutzung über cPanel und die Befehlszeile?

Unix - Pfad von Ordnern und Dateien erstellen

Wie lade ich eine Datei per FTP von der Befehlszeile hoch?