GNU/Linux >> Belajar Linux >  >> Linux

Apakah ada cara untuk membuat mv membuat direktori untuk dipindahkan jika tidak ada?

Bagaimana dengan one-liner ini (dalam bash):

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

Memecahnya:

mkdir --parents ./some/path

membuat direktori (termasuk semua direktori perantara), setelah itu:

mv yourfile.txt $_

memindahkan file ke direktori tersebut ($_ memperluas ke argumen terakhir yang diteruskan ke perintah shell sebelumnya, yaitu:direktori yang baru dibuat).

Saya tidak yakin seberapa jauh ini akan berhasil di shell lain, tetapi ini mungkin memberi Anda beberapa ide tentang apa yang harus dicari.

Berikut adalah contoh menggunakan teknik ini:

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

Simpan sebagai skrip bernama mv atau 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]"

Atau letakkan di akhir file ~/.bashrc Anda sebagai fungsi yang menggantikan mv default di setiap terminal baru. Menggunakan fungsi memungkinkan bash menyimpannya di memori, alih-alih harus membaca file skrip setiap saat.

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

Ini berdasarkan pengajuan Chris Lutz.


Linux
  1. Apa Cara Terbaik Untuk Menghitung Jumlah File Dalam Direktori?

  2. Cara Tercepat Untuk Mengekstrak Iso?

  3. Cara Otomatis Untuk Membuat Pohon Direktori?

  1. Apa cara teraman untuk mengosongkan direktori di * nix?

  2. Apakah ada cara untuk memeriksa rpath saat ini di Linux?

  3. open() dengan Python tidak membuat file jika tidak ada

  1. Bagaimana cara membuat file hanya jika tidak ada?

  2. Satu perintah untuk membuat direktori dan file di dalamnya perintah linux

  3. Apakah ada cara untuk mendapatkan toples server terbaru melalui URL yang tidak berubah?