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

Gibt es eine Möglichkeit, mv dazu zu bringen, das Verzeichnis zu erstellen, in das verschoben werden soll, wenn es nicht existiert?

Wie wäre es mit diesem Einzeiler (in bash):

mkdir --parents ./some/path/; mv yourfile.txt $_

Aufschlüsselung:

mkdir --parents ./some/path

erstellt das Verzeichnis (einschließlich aller Zwischenverzeichnisse), danach:

mv yourfile.txt $_

verschiebt die Datei in dieses Verzeichnis ($_ wird zum letzten Argument erweitert, das an den vorherigen Shell-Befehl übergeben wurde, dh:das neu erstellte Verzeichnis).

Ich bin mir nicht sicher, inwieweit dies in anderen Shells funktionieren wird, aber es könnte Ihnen einige Ideen geben, wonach Sie suchen sollten.

Hier ist ein Beispiel mit dieser Technik:

$ > ls
$ > touch yourfile.txt
$ > ls
yourfile.txt
$ > mkdir --parents ./some/path/; mv yourfile.txt $_
$ > ls -F
some/
$ > ls some/path/
yourfile.txt

mkdir -p `dirname /destination/moved_file_name.txt`  
mv /full/path/the/file.txt  /destination/moved_file_name.txt

Speichern Sie als Skript mit dem Namen mv oder mv.sh

#!/bin/bash
# mv.sh
dir="$2"
tmp="$2"; tmp="${tmp: -1}"
[ "$tmp" != "/" ] && dir="$(dirname "$2")"
[ -a "$dir" ] ||
mkdir -p "$dir" &&
mv "[email protected]"

Oder fügen Sie am Ende Ihrer ~/.bashrc-Datei eine Funktion hinzu, die die Standard-mv auf jedem neuen Terminal ersetzt. Die Verwendung einer Funktion ermöglicht es Bash, den Speicher zu behalten, anstatt jedes Mal eine Skriptdatei lesen zu müssen.

function mv ()
{
    dir="$2"
    tmp="$2"; tmp="${tmp: -1}"
    [ "$tmp" != "/" ] && dir="$(dirname "$2")"
    [ -a "$dir" ] ||
    mkdir -p "$dir" &&
    mv "[email protected]"
}

Diese basieren auf der Vorlage von Chris Lutz.


Linux
  1. Automatisierte Methode zum Erstellen eines Verzeichnisbaums?

  2. Gibt es eine Möglichkeit, den aktuellen rpath unter Linux zu überprüfen?

  3. open() in Python erstellt keine Datei, wenn sie nicht existiert

  4. Wie erstelle ich eine Datei nur, wenn sie nicht existiert?

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

So verwenden Sie den mkdir-Befehl zum Erstellen oder Erstellen eines Linux-Verzeichnisses

Erstellen Sie Verknüpfungen zu den häufig verwendeten Verzeichnissen in Linux

Was ist der sicherste Weg, ein Verzeichnis in * nix zu leeren?

Gibt es eine Möglichkeit, den Tooltip-Text in Firefox zu kopieren?

Gibt es eine Möglichkeit, die dekomprimierte Größe einer .bz2-Datei zu bestimmen?

Was ist der einfachste Weg, ein virtuelles Paket in Debian zu erstellen?