GNU/Linux >> Linux Esercitazione >  >> Linux

C'è un modo per fare in modo che mv crei la directory in cui spostarsi se non esiste?

Che ne dici di questa battuta (in bash):

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

Scomponendolo:

mkdir --parents ./some/path

crea la directory (incluse tutte le directory intermedie), dopodiché:

mv yourfile.txt $_

sposta il file in quella directory ($_ si espande fino all'ultimo argomento passato al comando shell precedente, ovvero:la directory appena creata).

Non sono sicuro fino a che punto funzionerà in altre shell, ma potrebbe darti qualche idea su cosa cercare.

Ecco un esempio che utilizza questa tecnica:

$ > 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

Salva come script chiamato mv o 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]"

Oppure metti alla fine del tuo file ~/.bashrc come una funzione che sostituisce il mv predefinito su ogni nuovo terminale. L'uso di una funzione consente a bash di conservarlo in memoria, invece di dover leggere ogni volta un file di script.

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

Questi basati sulla presentazione di Chris Lutz.


Linux
  1. Qual è il modo migliore per contare il numero di file in una directory?

  2. C'è un modo per ispezionare l'attuale rpath su Linux?

  3. open() in Python non crea un file se non esiste

  4. Come creare un file solo se non esiste?

  5. C'è un modo per copiare il testo del tooltip in Firefox?

Come utilizzare il comando mkdir per creare o creare una directory Linux

Crea collegamenti alle directory utilizzate di frequente in Linux

C'è un modo per ottenere l'ultimo jar del server tramite un URL che non cambia?

C'è un modo per rendere il supporto Nano il completamento automatico e la chiusura automatica della parentesi?

Come posso fare in modo che find escluda la cartella in cui cerca?

Qual è il modo più semplice per creare un pacchetto virtuale in debian?